C# 单击动态生成的锚不触发事件
我在标签文本上有一个锚。我正在使用runat=“server”动态创建锚,单击按钮,它会按预期创建。我想使用它的click事件,但它不会启动 我的代码:C# 单击动态生成的锚不触发事件,c#,asp.net,C#,Asp.net,我在标签文本上有一个锚。我正在使用runat=“server”动态创建锚,单击按钮,它会按预期创建。我想使用它的click事件,但它不会启动 我的代码: lblEmail.Text = email + " <a href='#' runat='server' class='crossicon' onclick='removebtn_Click'></a> "; protected void removebtn_Click(object sender, EventArgs
lblEmail.Text = email + " <a href='#' runat='server' class='crossicon' onclick='removebtn_Click'></a> ";
protected void removebtn_Click(object sender, EventArgs e)
{
}
<asp:Panel runat="server" id="pnlEmail">
<asp:Label runat="server" id="lblEmail"/>
</asp:Panel>
lblEmail.Text=email+”;
受保护的void removebtn_单击(对象发送方,事件参数e)
{
}
如何为该按钮创建事件?我不想使用JS,因为在这种情况下,我必须为新值使用隐藏字段以这种方式向标签添加标记/文本不会添加链接按钮或将事件注册到服务器上的控件树。要实现动态添加控件和服务器事件的行为,需要注册控件和事件(如下所示) aspx:
lblEmail.Text = email + " <a href='#' runat='server' class='crossicon' onclick='removebtn_Click'></a> ";
protected void removebtn_Click(object sender, EventArgs e)
{
}
<asp:Panel runat="server" id="pnlEmail">
<asp:Label runat="server" id="lblEmail"/>
</asp:Panel>
而处理者将是
void lnkbtn_Click(object sender, EventArgs e)
{
// code for your dynamically generated link
}
我不这么认为,它是动态创建的。该控件的ID在哪里。您必须创建服务器端控件并将其添加到某个占位符/面板e.t.c默认情况下,控件使用uu doPostBack向服务器进行回发__doPostBack获取控件的唯一ID(或者在HTML中为HTML元素的name属性)。第二个参数是要激发的命令的名称
<a href='#' runat='server' class='crossicon' href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');></a>
我希望它能对您有所帮助。您需要编写代码来RaisePostBackEvent,而不是removebtn\u Click。