0

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

4

1 回答 1

0

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

其次,如果您确实需要在代码中设置事件处理程序,您可以谷歌“添加事件处理程序 .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
}
于 2013-06-25T21:52:01.607 回答