マークアップ:
<div style="float:left;margin-top:15px;width:80px">
<asp:DropDownList ID="MyList" runat="server" Width="100px"></asp:DropDownList>
</div>
コード:
// clear vehicles list
MyList.Items.Clear();
// add 'all' option
MyList.Items.Add(new ListItem("ALL", "0"));
// add assets
foreach (CustomClass item in items)
MyList.Items.Add(new ListItem(item.Name, item.ID.ToString()));
SelectedIndexChangedは必要ないため、トリガーするイベントはありません。
ポストバックのボタンをクリックすると、selectedItemの値がDropDownListの最初の項目の値のままになります。何が欠けていますか?
[〜#〜] note [〜#〜]投稿の返信と編集を停止してください。既に回答済みですのでそのままとさせていただく場合がございます。
_Page_Load
_でデータバインドしている場合は、基本的にSelectedItemもリセットしています。
_Page_Load
_に存在するバインディングコードは、if(!IsPostBack)
ブロック内にラップする必要があります。
_if(!Page.IsPostBack)
{
// Your binding code here ...
}
_
コードはおそらくポストバック後にも実行されており、ボックスをクリアしているため、選択がすべて失われています。
もしそうなら、if( !Page.IsPostBack ) { ... }
のようなものでコードをラップしてみてください。
したがって、この答えは、最も一般的な原因に対する「明白な」解決策です。ただし、これを引き起こす可能性のあるもう1つの驚くべき問題があります!リストの値はデータベースからのもので、値には改行とキャリッジリターンが含まれています: "\ r\n"。これらの値は無害なスペースのように見えますが、実際にはそうではありません!私の解決策は、これらの隠されたChar値を削除することでした。それが役に立てば幸い。