-
各機能を順番に実装する。
-
コードのクラスWebForm1に以下のメンバを追加する。
private void ShowAddress()
{
address.Text = prefList.SelectedItem.Text;
if (cityList.SelectedItem != null) address.Text += cityList.SelectedItem.Text;
if (townList.SelectedItem != null) address.Text += townList.SelectedItem.Text;
code.Enabled = true;
candList.Visible = false;
}
-
コード中のPage_Load内に以下を追加する。
if (IsPostBack) return;
PostData pd = PostData.Instance(Server);
for (int i=0;i<47;++i) prefList.Items.Add(pd[i].Value);
prefList.SelectedIndex = 12;
実行して、東京都と表示されるのを確認する。
-
県選択処理の実装。デザインのprefListをダブルクリックし、関数内に以下を追加する。
PostData pd = PostData.Instance(Server);
PrefData pf = pd[prefList.SelectedIndex];
cityList.Items.Clear();
townList.Items.Clear();
foreach (CityData ct in pf.List) cityList.Items.Add(ct.Value);
ShowAddress();
Page_Loadの最後に以下を追加する。
prefList_SelectedIndexChanged(null,null);
実行して、cityListに千代田区などが表示されていることを確認する。
-
市選択処理の実装。デザインのcityListをダブルクリックし、以下を追加する。
PostData pd = PostData.Instance(Server);
PrefData pf = pd[prefList.SelectedIndex];
CityData ct = (CityData)pf.List[cityList.SelectedIndex];
townList.Items.Clear();
foreach (TownData tw in ct.List) townList.Items.Add(tw.Value);
ShowAddress();
実行して、cityListを選択するとtownListに設定されることを確認する。
-
町選択処理の実装。デザインのtownListをダブルクリックし、以下を追加する。
PostData pd = PostData.Instance(Server);
PrefData pf = pd[prefList.SelectedIndex];
CityData ct = (CityData)pf.List[cityList.SelectedIndex];
TownData tw = (TownData)ct.List[townList.SelectedIndex];
code.Text = tw.Code.ToString();
ShowAddress();
実行して、cityListとtownListを選択すると郵便番号が表示されることを確認する。
-
郵便番号の検証の実装。 デザインでRangeValidator1を選択する。
プロパティのMaximumValue=9999999、MinimumValue=10000、Type=Integerとする。
実行して、6,7桁の数字以外の入力でエラーになることを確認する。
-
郵便番号の検索の実装。コードのクラスWebForm1に以下のメンバを追加する。
private void SetList(int no)
{
PostData pd = PostData.Instance(Server);
ArrayList a = pd.GetTownData(int.Parse(code.Text));
if (a == null)
{
address.Text = "無効な番号です";
return;
}
TownData tw = (TownData)a[no];
CityData ct = tw.Parent;
PrefData pf = ct.Parent;
prefList.SelectedIndex = pf.ID;
prefList_SelectedIndexChanged(null,null);
cityList.SelectedIndex = ct.ID;
cityList_SelectedIndexChanged(null,null);
townList.SelectedIndex = tw.ID;
townList_SelectedIndexChanged(null,null);
if (a.Count == 1) return;
code.Enabled = false;
candList.Visible = true;
candList.Items.Clear();
candList.Items.Add("やり直す");
foreach (TownData t in a)
candList.Items.Add(t.Parent.Value + t.Value);
candList.SelectedIndex = no+1;
}
デザインのsearchBtnをダブルクリックし、以下を追加する。
SetList(0);
デザインのcodeを選択する。プロパティでイベント(雷マーク)をクリックし、TextChanged=searchBtn_Clickとする。
実行して、1040061を検索し、銀座が出てくることを確認する。
-
候補の中から選択の実装。デザインのcandListをダブルクリックし、以下を追加する。
if (candList.SelectedIndex == 0)
{
ShowAddress();
return;
}
SetList(candList.SelectedIndex-1);
実行して、6000000を検索する。候補の中から選択してみる。
- サンプル:WebForm1.aspx、WebForm1.aspx.cs。
以上。(2002/12/04)