一个简单的自定义控件的事件处理示例 [IPostBackEventHandler]

本文介绍了一个自定义的 ASP.NET Web 控件,该控件通过 PostBack 机制处理点击事件。控件实现了 IPostBackEventHandler 接口,并通过委托 SClickDelegate 来触发事件处理函数 OnSClick。此外,还展示了如何渲染 HTML 元素并为每个元素绑定点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ContractedBlock.gifExpandedBlockStart.gif代码
public class ClickEventArgs : System.EventArgs
{
private string _cuPg;

public ClickEventArgs(string arg)
{
_cuPg
= arg;
}

public string CuPg
{
get { return _cuPg; }
}
}

public delegate void SClickDelegate(object sender, ClickEventArgs e);

public class TC : System.Web.UI.Control, IPostBackEventHandler
{
public event SClickDelegate SClick;

private string _currentArg = string.Empty;

public string CurrentArg
{
get { return _currentArg; }
set { _currentArg = value; }
}

public TC()
{
}

protected override void RenderChildren(HtmlTextWriter writer)
{
base.RenderChildren(writer);

for(int i=0; i <10; i++)
{
writer.AddAttribute(HtmlTextWriterAttribute.Name,
this.UniqueID + "_CustomerControlBndy");
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (i.ToString() == _currentArg)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled,
"true");
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Href,
this.Page.GetPostBackClientHyperlink(this, i.ToString()));
}

writer.Write(i.ToString());
writer.RenderEndTag();
writer.WriteBreak();
}
}

public void OnSClick(ClickEventArgs e)
{
if (this.SClick != null)
{
_currentArg
= e.CuPg;
SClick(
this, e);
}
}


#region IPostBackEventHandler 成员

void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
this.RaisePostBackEvent(eventArgument);
}

protected virtual void RaisePostBackEvent(string arg)
{
this.OnSClick(new ClickEventArgs(arg));
}

#endregion
}

 

转载于:https://www.cnblogs.com/bndy/archive/2010/03/26/1696937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值