如何在C#代码隐藏中设置OnSelectedIndexChanged而不是ASP.net

时间:2013-06-25 21:43:34

标签: c# asp.net listbox ascx selectedindexchanged

所以在ASP.NET中我只会这样做:

    <asp:ListBox OnSelectedIndexChanged="UpdateModels" runat="server" > </asp:ListBox>

但我的列表框位于.ascx文件中。这是注册并包含在我的实际网页massupdate.aspx像这样

<%@ Register TagPrefix="mass" TagName="make" Src="~/DynamicData/Make.ascx" %>
<mass:make id="makeControl" runat="server"/>

在我的make.ascx.cs中我有这个

   public ListBox getlistbox()
    {

        return DropDownList1;

    }

所以我可以访问原始列表框,但我不知道如何在我的代码隐藏中为mass.update.aspx复制C#中的第一个代码片段。

1 个答案:

答案 0 :(得分:0)

首先,即使在页面上注册为控件,ascx中注册的事件也应该触发。事件应该通过页面上的所有控件冒泡(或者可能下降?),这是webforms的“魔力”的一部分。

其次,如果您确实需要在代码中设置事件处理程序,您可以谷歌“添加事件处理程序.NET控件”或者您可以在下面键入类似的内容,并且Visual Studio intellisense应该在您键入后自动为您完成它“+ =”你可以从那里拿走它。

makeControl.getlistbox().OnSelectedIndexChanged += this.Index_Changed

void Index_Changed(Object sender, EventArgs e) {
    // whatever you need to do on the event
}