有没有办法将onclick事件添加到ASP.NET Label服务器控件?

fue*_*sjr 30 asp.net controls

我想做这样的事情:

<asp:Label ID="lblMyLabel" onclick="lblMyLabel_Click" runat="server">My Label</asp:Label>
Run Code Online (Sandbox Code Playgroud)

我知道在Javascript中我能做到:

<span onclick="foo();">My Label</span>
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么我不能用Label对象做到这一点.

Bri*_*Kim 45

您可以使用属性添加onclick客户端回调.

我不知道你可以在span标签上做到这一点,但如果它有效,你可以添加'onclick' lblMyLabel.Attributes.Add("onclick", "foo();");

foo();需要是客户端javascript函数.

System.Web.UI.WebControls.Label没有OnClick服务器事件.如果您希望使用上面的示例进行服务器回调,可以考虑使用AJAX.

你也可以LinkButton像其他人一样说.你可以通过使用CSS使它看起来不像一个链接,如果它只是你担心的下划线.

ASPX:

<asp:LinkButton ID="LinkButton1" runat="server" 
    CssClass="imjusttext" OnClick="LinkButton1_Click">
LinkButton
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

CSS:

a.imjusttext{ color: #000000; text-decoration: none; }
a.imjusttext:hover { text-decoration: none; }
Run Code Online (Sandbox Code Playgroud)


Cod*_*hef 11

您的问题没有指明是否要在服务器(VB或c#)或客户端(javascript)上引发click事件.如果您正在寻找服务器端事件,您应该使用带有css的链接按钮链接显示为标签.然后,您可以使用链接按钮的服务器端单击事件.如果您正在寻找客户端点击事件 - 只需将其键入服务器控件标记,
asp:label id="MyLabel" runat="server" onclick="javascript:alert('hello');" Text="Click Me";
ASP.NET将在生成的html标记中发出其他属性.


Jam*_*rue 5

您可以在page_load中的代码中执行此操作,例如:

void Page_Load(object sender, EventArgs e) 
{
      lblMyLabel.Attributes.Add("onclick",
           "javascript:alert('ALERT ALERT!!!')");
}
Run Code Online (Sandbox Code Playgroud)