以前は自分の C# プログラミングはそれほど悪くないと思っていましたが、今日、自分の頭に真剣に疑問を投げかけています。
DropDownList を動作させようとしていますが、今日はうまくいきません。ascx ページに動的に読み込まれる ascx コントロールに単純な DropDownList があります。
<asp:DropDownList ID="ddl_SortBy" runat="server" AutoPostBack="true">
<asp:ListItem Value="0">Sort Alphabetically A to Z</asp:ListItem>
<asp:ListItem Value="1">Sort Alphabetically Z to A</asp:ListItem>
</asp:DropDownList>
そしていくつかのコードビハインド..
private short SortBy = 0;
protected void Page_Load(object sender, EventArgs e)
{
this.ddl_SortBy.SelectedIndex = -1;
this.ddl_SortBy.SelectedIndexChanged += new EventHandler(ddl_SortBy_SelectedIndexChanged);
if (!IsPostBack)
SearchDirectory();
}
public void ddl_SortBy_SelectedIndexChanged(object sender, EventArgs e)
{
SortBy = Convert.ToInt16(this.ddl_SortBy.SelectedItem.Value);
SearchDirectory();
}
SearchDirectory() 関数が呼び出されないため、選択したインデックス変更イベントをトリガーする最初のアイテムを取得できません。コントロールが最初のアイテムをロードするときに IS が選択されている可能性があるため、選択時にインデックスが実際には変更されていない可能性があることを理解できます。
選択した項目のインデックスを -1 に設定し、ページの読み込み時に ClearSelection() を設定しようとしましたが、うまくいきませんでした。
何か案は?ありがとう