在WEB自定义控件中实现自动回传功能

在开发自定义的WEB控件时,有时我们想让自定义控件实现自动回传的功能。通常只有BUTTON这样的控件才能实现此功能。如果想实现的话,只要让我们的自定义控件实现IPostBackEventHandler接口就可以了,同时给控件加上事件引发的代码调用。

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace MyWebControls
{
 /// <summary>
 /// MyCounter 的摘要说明。
 /// </summary>
 [DefaultProperty("Text"),
  ToolboxData("<{0}:MyCounter runat=server></{0}:MyCounter>")]
 public class MyCounter : System.Web.UI.WebControls.WebControl,IPostBackEventHandler
 {
//在控件中当用户按下增加或减少时,对此数字进行操作。
  public int Number
  {
   get
   {
    if(ViewState["number"]!=null)
    {
     return (int)ViewState["number"];
    }
    return 50;
   }
   set
   {
    ViewState["number"]=value;
   }
  }

//Page.GetPostBackEventReference(this,"inc")在客户端生成一个脚本区(用于上传数据的),同时再进行调用
  /// <summary>
  /// 将此控件呈现给指定的输出参数。
  /// </summary>
  /// <param name="output"> 要写出到的 HTML 编写器 </param>
  protected override void Render(HtmlTextWriter output)
  {
   output.Write("当前数字为:"+Number.ToString());
   output.Write("<a href=/"javascript:"
    +Page.GetPostBackEventReference(this,"inc")
    +"/">增加</a>");
   output.Write(" &nbsp;");
   output.Write("<a href=/"javascript:"
    +Page.GetPostBackEventReference(this,"dec")
    +"/">减少</a>");
  }
  #region IPostBackEventHandler 成员
//实现事件回送接口,HTML中只有BUTTON和IMAGEBUTTON能起回送的发生,如果你想
  //让自己的控件也实现点击后自动回送,则实现此接口
//判断回传时的参数。这个控件回送时有二种动作。
  public void RaisePostBackEvent(string eventArgument)
  {
   if(eventArgument=="inc")
   {
    Number=Number+1;
   }
   else
   {
    Number=Number-1;
   }
  }

  #endregion
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值