键入btn.Click+=
然后按Tab键,vs会自动生成事件的相关代码。
void btn_Click(object sender, EventArgs e){
Button btn=sender as Button //得到单击的Button。
Response.Write(btn.ID) //输出该Button的ID。
//这里执行你自定义的方法Do
}
void Do(string str,int i)
{
你的自定义的方法内容。
}
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)
{
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)