我曾经认为我的c#编程并不是太糟糕,但今天我正在认真地质疑我的头脑,这么小的东西正在打败我......
我试图让DropDownList表现出来,但我们今天没有开始.我在ascx控件中有一个简单的DropDownList,它被动态加载到aspx页面中
<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>
Run Code Online (Sandbox Code Playgroud)
和一些代码背后..
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();
}
Run Code Online (Sandbox Code Playgroud)
我永远无法获得第一个触发所选索引更改事件的项 - 因为未调用SearchDirectory()函数.我可以理解,可能的情况是,当控件加载第一个项目IS时,所以在选择时,索引实际上并没有改变.
我已经尝试将所选项目索引设置为-1,并在页面加载时设置ClearSelection(),但没有运气.
有任何想法吗?谢谢
您总是SelectedIndex在每次回发时重置为-1:
this.ddl_SortBy.SelectedIndex = -1;
Run Code Online (Sandbox Code Playgroud)
所以也把它放在回发检查中:
if (!IsPostBack)
{
this.ddl_SortBy.SelectedIndex = -1;
SearchDirectory();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17916 次 |
| 最近记录: |