ASP.NET web窗体中如何给一个Label控件添加单击事件

 我来答
cbwasabi
2011-10-13
知道答主
回答量:7
采纳率:0%
帮助的人:1万
展开全部

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

namespace CustomControls

{

    [DefaultProperty("Text")]

    [ToolboxData("<{0}:ClickLabel runat=server></{0}:ClickLabel>")]

    public class ClickLabel : WebControl, IPostBackEventHandler

    {

        [Bindable(true)]

        [Category("Appearance")]

        [DefaultValue("")]

        [Localizable(true)]

        public string Text

        {

            get

            {

                String s = (String)ViewState["Text"];

                return ((s == null) ? "[" + this.ID + "]" : s);

            }

            set

            {

                ViewState["Text"] = value;

            }

        }

        protected override void RenderContents(HtmlTextWriter output)

        {

           

            output.Write(Text);

          

        }

        public event EventHandler Click;

        public ClickLabel()

        {

        }

        protected void OnClick()

        {

            if (Click != null)

            {

                Click(this, new EventArgs());

            }

        }

        //When postback is caused by this control, raise the event

        void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)

        {

            OnClick();

        }

        //Add onclick attribute to cause a postback when Label is clicked

        protected override void AddAttributesToRender(HtmlTextWriter writer)

        {

            base.AddAttributesToRender(writer);

            writer.AddAttribute(HtmlTextWriterAttribute.Onclick, Page.ClientScript.GetPostBackEventReference(this, "OnClick"));

        }

    }

}

我帮你写个,将以上代码编译成一个.DLL文件,就有一个带有单击事件的Label控件了

编译方法:

打开studio 随便新建一个项目,注意是项目,就会自动生成一个Default.aspx,和Default.aspx.cs两个文件,将以上代码复盖Default.aspx.cs的代码,然后可以点击项目菜单栏属性,可以修改程序集名和命名空间的名字例如:之后点击生成下的生成选择就会在你的BIN文件里生成一个dll

将它复制到你项目文件里就可以引用了

<%@ Register Assembly="ClickLabel" Namespace="CustomControls" TagPrefix="fa" %>

调用控件

<fa:ClickLabel   Font-Size="15px" ID="ClickLabel5"  OnClick="label_Click" runat="server" Text="确 定" />

后台代码

  public void label_Click(object sender, EventArgs e)

    {

       

     }

百度网友2f01db5bb
推荐于2018-03-02 · TA获得超过258个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:318万
展开全部
分两种情况,调用JS方法,和调用后台方法
调用JS方法的如下
有两种方法:
一、在前台:<asp:Label runat="server" ID="Label1" Text="Label1" onclick="你的JS方法"></asp:Label>
二、在后台:Label1.Attributes.Add("onclick","你的JS方法");这个要加在Page_Load里哦
Label不能像按钮一样双击后有一个自己的单击方法,如果你是要单击Label后调用后台的方法你可以这样:
首先,你写一个后台的方法,这个方法一定要是public的,给你个例子吧!简单的:
后的方法:
public string showNum()
{
return "123";
}
JS方法:
function show()
{
alert('<%=showNum() %>')
}
然后给Label加个onclick事件就可以啦,这样<asp:Label ID="Label1" runat="server" Text="Label" onclick="show();"></asp:Label>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack87918
推荐于2016-08-05 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1456万
展开全部
后台Page_Load里添加
lbT.Attributes.Add("onclick","display()");
前台
<script type="text/javascript">
function display() {
alert('你好,这是Label点击事件');
}
</script>
<asp:Label runat="server" ID="lbT" Text="Label点击事件"></asp:Label>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新昵称lpp
2011-10-10 · 超过14用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:23.5万
展开全部
如果你想给label添加事件,建议你用linkbutton只要用css去掉下划线就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十誓言十
2011-10-08
知道答主
回答量:8
采纳率:0%
帮助的人:1.1万
展开全部
前端写js吧
onclick="javascript:alert(1)"; 测试下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式