DropDownListの選択した値が取れなくて困っています。
行ったことはDropDownListを配置し、IDにIdDropListと指定。
Page_Load()で以下のように初期化。
List<string> idList = new List<string>();
idList.Add(aa);
idList.Add(bb);
idList.Add(cc);
IdDropList.DataSource = idList;
IdDropList.DataBind();
ccを選択して、ボタンを押したときに
string val = IdDropList.SelectedValue;
とやったのですが、valには、aaが入っています。
初歩的なことのような気もするのですが何故だかわかりません。
http://32key.com/cs/cs/aspnet.htm
の
「DropDownListに値をセットするには」
のところは参考になりませんかね?
それと、C#はC#でも、ASP.NETとWindowsアプリではだいぶ違いがあるようなので、
質問時には(以前の質問で書いていても)必ず開発環境を明示してください。
参考ページありがとうございます。ちょっとすぐに試せないので、また
結果、ごほうこくします。
DropDownListだけだと、webだか、formだかわからないんですね。気をつけます。
環境は、visualstudio2005,C#,ASP.NETです。
途中経過報告です。
> http://32key.com/cs/cs/aspnet.htm
このサイトと同じようにやってみたのですが、結果は同じでした。
DataValueとDataTextは設定しましたが、DataSouceプロパティは存在しなかったので
List<ListItem> a = new List<ListItem>();
ListItem li = new ListItem();
li.Text = aa;
li.Value = aav;
a.Add(li);
li = new ListItem();
li.Text = bb;
li.Value = bbv;
a.Add(li);
FormIdDropList.DataSource = a;
FormIdDropList.DataBind();
ASPコード上から↓のように設定すると、SelectedValueでも取れますね。
どうやら、動的に設定した値が取れていないようです。
<asp:DropDownList id=DropDown1 runat=server>
<asp:ListItem>項目 1</asp:ListItem>
<asp:ListItem>項目 2</asp:ListItem>
<asp:ListItem>項目 3</asp:ListItem>
<asp:ListItem>項目 4</asp:ListItem>
<asp:ListItem>項目 5</asp:ListItem>
<asp:ListItem>項目 6</asp:ListItem>
</asp:DropDownList>
なさけないご報告なのですが、できました。
Page_Load時にDropDownListを初期化してたのですが
この処理をIsPostBackを見ないでやっていたために毎回、初期化されていたようです。
こちらにブレークポイントをはればすぐ気付いたのになぁ~。