Building ASP.NET Server Controls-CustomEventTextbox.cs

// Title: Building ASP.NET Server Controls
//
// Chapter: 5 - Event-based Programming
// File: CustomEventTextbox.cs
// Written by: Dale Michalk and Rob Cameron
//
// Copyright ?2003, Apress L.P.

using System;
using System.Web;
using System.Web.UI;
using System.Collections.Specialized;
using System.ComponentModel;

namespace ControlsBookLib.Ch05
{
   [ToolboxData("<{0}:CustomEventTextbox runat=server></{0}:CustomEventTextbox>"),
   DefaultProperty("Text")]
   public class CustomEventTextbox : Control, IPostBackDataHandler
   {
      private string oldText;

      public virtual string Text
      {
         get
         {
            object text = ViewState["Text"];
            if (text == null)
               return string.Empty;
            else
               return (string) text;
         }
         set
         {
            ViewState["Text"] = value;
         }
      }

      public bool LoadPostData(string postDataKey,
         NameValueCollection postCollection)
      {
         string postedValue = postCollection[postDataKey];
         if (!Text.Equals(postedValue))
         {
            oldText = Text;
            Text = postedValue;
            return true;
         }
         else
            return false;
      }

      public void RaisePostDataChangedEvent()
      {
         OnTextChanged(new TextChangedEventArgs(oldText, Text));
      }

      protected void OnTextChanged(TextChangedEventArgs tce)
      {
         if (TextChanged != null)
            TextChanged(this, tce);
      }
      public event TextChangedEventHandler TextChanged;

      override protected void Render(HtmlTextWriter writer)
      {
         base.Render(writer);
         Page.VerifyRenderingInServerForm(this);
         // write out the <INPUT type="text"> tag
         writer.Write("<INPUT type=\"text\" name=\"");
         writer.Write(this.UniqueID);
         writer.Write("\" value=\"" + this.Text + "\" />");
      }
   }
}

转载于:https://www.cnblogs.com/shihao/archive/2012/05/13/2498657.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值