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" %>
调用控件
后台代码
public void label_Click(object sender, EventArgs e)
{
}
分两种情况,调用JS方法,和调用后台方法
调用JS方法的如下
有两种方法:
一、在前台:
二、在后台:Label1.Attributes.Add("onclick","你的JS方法");这个要加在Page_Load里哦
Label不能像按钮一样双击后有一个自己的单击方法,如果你是要单击Label后调用后台的方法你可以这样:
首先,你写一个后台的方法,这个方法一定要是public的,给你个例子吧!简单的:
后的方法:
public string showNum()
{
return "123";
}
JS方法:
function show()
{
alert('<%=showNum() %>')
}
然后给Label加个onclick事件就可以啦,这样
后台Page_Load里添加
lbT.Attributes.Add("onclick","display()");
前台
如果你想给label添加事件,建议你用linkbutton只要用css去掉下划线就行。
前端写js吧
onclick="javascript:alert(1)"; 测试下