所以在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#中的第一个代码片段。
答案 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
}