您的位置:首页 > 编程语言 > ASP

Building ASP.NET Server Controls-CustomEventTextbox.cs

2012-05-13 23:22 525 查看
// 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 + "\" />");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: