0

我的页面中有一个下拉列表,如下所示:

<asp:DropDownList ID="DropDownList1" runat="server" 
        onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
        <asp:ListItem Text="1" Value="1"></asp:ListItem>
        <asp:ListItem Text="2" Value="2"></asp:ListItem>
        <asp:ListItem Text="3" Value="3"></asp:ListItem>
    </asp:DropDownList>

代码背后:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
       //Logic Goes Here
    }

在页面加载中,从会话变量中,我将 DropDownList id 设为“DropDownList1”。基于此 ID 字符串,我可以获得控件,但无法获得与其关联的事件名称。

那么如何通过知道Control来找到Control的事件名称呢??

提前感谢

4

4 回答 4

2

您可能需要通过属性获取它。

string selected = EventDropDownList1.Attributes["onselectedindexchanged"].ToString();
于 2012-10-22T12:08:36.203 回答
1

不知道你在这里问什么,但活动可以通过两种方式进行连接,

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)Handles DropDownList1.SelectedIndexChanged

或者在页面加载部分:

AddHandler DropdownList1.SelectedIndexChanged, AddressOf DropDownList1_SelectedIndexChanged

我知道您的问题是要求从控件名称中查找事件的名称,但您将事件连接到控件。如果您需要测试哪个控件触发了该事件,即您将相同的代码连接到多个下拉列表,并且您希望根据 DDL ID 控制代码流,然后强制发送者访问它的值:

Dim id As String = CType(sender,DropDownList).ID

希望对您有所帮助,如果您可以提供更多信息,我也许可以给出更明确的答案。

很抱歉在 VB.Net 中回答。

于 2012-10-22T12:15:01.840 回答
0

您可以使用打击代码:

Request.Form("__EVENTTARGET")
于 2012-10-22T12:10:19.323 回答
0

如果您使用 AutoPostBack = true,则无需指定事件。自动回发将根据回发中发生的情况运行正确的事件。

所以你不需要知道事件的名称,只需在后端创建事件,自动回发就会触发相应的代码。

于 2012-10-22T12:10:27.093 回答