我曾经以为我的C#编程是不是太糟糕,但今天我很认真地质疑我的头,东西这么小的击败我...ASP.NET的DropDownList的SelectedIndex不改变第一要素
我试图让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>
和背后的一些代码..
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(),但没有运气。
任何想法?由于
我也试图把事件调用上DropDownList的使用'OnSelectedIndexChanged'并删除第Page_Load中有两行,结果相同 – 2012-07-10 12:21:00
你在每个页面请求上做的第一件事是将选定的索引设置为一个静态值,就其余的代码而言,它永远不会改变。 – David 2012-07-10 12:22:36
你在期待什么会发生吗?您是否希望事件在初始加载时发生?或者您遇到“重新选择”初始项目不起作用的问题? – 2012-07-10 12:23:13