asp.net C#prevent射击SelectedIndexChanged事件,而从服务器端code更改指数 [英] asp.net c# prevent firing selectedindexchanged event while changing index from serverside code
问题描述
我有同样的aspx页面上的两个DropDownList控件为
I have two dropdownlist controls on the same aspx page as
<asp:DropDownList ID="ddlM" runat="server" Width="123px" AutoPostBack="True" OnSelectedIndexChanged="ddlM_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlC" runat="server" Width="123px" AutoPostBack="True" OnSelectedIndexChanged="ddlC_SelectedIndexChanged">
</asp:DropDownList>
在C#code为两个OnSelectedIndexChanged情况如下:
the C# code for OnSelectedIndexChanged of both are as below :
protected void ddlC_SelectedIndexChanged(object sender, EventArgs e)
{
ddlM.SelectedIndex = 0;
ViewState["ddlC"] = true;
ViewState["ddlM"] = false;
BindPGrid();
}
protected void ddlM_SelectedIndexChanged(object sender, EventArgs e)
{
ddlC.SelectedIndex = 0;
ViewState["ddlC"] = false;
ViewState["ddlM"] = true;
BindPGrid();
}
两者都通过使用一些服务器端code数据库记录的项目填充。现在,为了使所选的DDLM我想OnSelectedIndexChanged事件ddlC但没有触发事件ddlC_SelectedIndexChanged的第一个索引。而同为ddlC作为ddlC的OnSelectedIndexChanged事件我想使选定的DDLM但没有触发事件ddlM_SelectedIndexChanged的第一个索引。右不是触发事件。我该怎么办prevent呢?
both are populated by database record items using some server-side code. Now, OnSelectedIndexChanged event of "ddlM" I want to make selected the first index of "ddlC" but WITHOUT firing the event ddlC_SelectedIndexChanged. And same for "ddlC" as OnSelectedIndexChanged event of "ddlC" I want to make selected the first index of "ddlM" but WITHOUT firing the event ddlM_SelectedIndexChanged. Right not it fires the event. How can I do prevent it?
感谢
推荐答案
另外,您可以删除并从控制重新添加SelectedIndexChanged事件处理程序
Alternatively you can remove and re-add the SelectedIndexChanged event handler from the control
ddlM.SelectedIndexChanged -= ddlM_SelectedIndexChanged;
ddlM.SelectedIndex = 0;
ViewState["ddlC"] = false;
ViewState["ddlM"] = true;
BindPGrid();
ddlM.SelectedIndexChanged += ddlM_SelectedIndexChanged;
然后,你不必与全局标志混乱
Then you don't have to mess with global flags
这篇关于asp.net C#prevent射击SelectedIndexChanged事件,而从服务器端code更改指数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!