给定DropDownList如何查找关联的“OnSelectedIndexedChanged”事件方法名称

时间:2012-10-22 12:05:34

标签: c# asp.net .net

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

<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 个答案:

答案 0 :(得分:2)

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

string selected = EventDropDownList1.Attributes["onselectedindexchanged"].ToString();

答案 1 :(得分: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。

答案 2 :(得分:0)

您可以使用吹码:

Request.Form("__EVENTTARGET")

答案 3 :(得分:0)

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

因此,您无需知道事件的名称,只需在后端创建事件,autpostback将触发相应的代码。