我的页面中有一个下拉列表,如下所示:
<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 ??
来找到控件的事件名称提前举手
答案 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将触发相应的代码。