dropDownList的SelectedIndexChanged事件没有触发c#

时间:2015-02-13 16:26:58

标签: c# asp.net

我已经检查了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);
      } 

2 个答案:

答案 0 :(得分:0)

听起来你没有向你的组合框注册事件处理程序

将以下代码添加到设计器或Page_Load事件

this.sel_area.SelectedIndexChanged += 
        new System.EventHandler(sel_area_SelectedIndexChanged);

您也可以按照以下步骤执行此操作

1:选择你的组合框/下拉列表

2:转到属性

3:转到活动标签

4:on Selectedindexchanged Event添加处理程序

enter image description here

答案 1 :(得分:0)

就像其他人已经说过的那样,听起来你的DropDownList SelectedIndexChanged事件没有订阅你的事件处理程序。虽然我可以看到您在代码中完成了这些操作,但您可能会在某处丢失事件订阅。为了增加您对页面触发的事件顺序的理解,请查看其他SO问题和答案。

https://stackoverflow.com/a/11235074/2305468

另请注意,如果您选择了&#34; sel_area&#34;对象并将其替换为C#代码中的新DropDownList对象,您将丢失以前DropDownList实例中的所有订阅事件,因此请确保不要在任何地方完全替换它。