![](/img/trans.png)
[英]ASP.NET / C#: DropDownList SelectedIndexChanged event not firing
[英]SelectedIndexChanged event of dropDownList not firing c#
我已經檢查了stackoverflow中的每個問題。 :(但任何似乎都沒有工作..我已經在事件中放置了一個斷點而沒有開火。
我希望你能得到解決方案謝謝
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:DropDownList AutoPostBack="true"
runat="server" ID="sel_area" class="select"
OnSelectedIndexChanged="sel_area_SelectedIndexChanged" EnableViewState="true">
</asp:DropDownList>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<Triggers>
<asp:AsyncPostbackTrigger ControlID="sel_area" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
這里是c#代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
destino = destinorfc();
tb_areas = mostrarAreas(destino);
for (int i = 0; i < tb_areas.Rows.Count; i++)
{
ListItem lst = new ListItem(Convert.ToString(tb_areas.Rows[i]["PEPCECO"]), Convert.ToString(tb_areas.Rows[i]["PEPCECO"]));
sel_area.Items.Insert(sel_area.Items.Count, lst);
}
}
}
public void sel_area_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write("llegué");
string ArtistId = sel_area.SelectedValue;
Response.Write("<script language=javascript>alert('" + ArtistId +"');</script>");
Label1.Text = ArtistId;
Console.WriteLine("llegueee");
//LoadComboAlbum(ArtistId);
}
聽起來你沒有向你的組合框注冊事件處理程序
將以下代碼添加到designer或Page_Load事件中
this.sel_area.SelectedIndexChanged +=
new System.EventHandler(sel_area_SelectedIndexChanged);
您也可以按照以下步驟執行此操作
1:選擇你的組合框/下拉列表
2:去物業
3:轉到事件選項卡
4:on Selectedindexchanged Event添加處理程序
像其他人已經說過的那樣,聽起來你的DropDownList SelectedIndexChanged事件沒有訂閱你的事件處理程序。 雖然我可以看到你已經在你的代碼中完成了它,但你可能會在某個地方丟失事件訂閱。 為了增加您對頁面觸發的事件順序的理解,請查看其他SO問題和答案。
https://stackoverflow.com/a/11235074/2305468
另請注意,如果您使用“sel_area”對象並將其替換為C#代碼中的新DropDownList對象,您將丟失以前DropDownList實例中的所有訂閱事件,因此請確保不要在任何地方完全替換它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.