实现了IPostBackEventHandler接口的TextBox
来源:互联网 发布:腾讯炒股软件 编辑:程序博客网 时间:2024/05/21 09:58
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace PEONormalControl
...{
/**//// <summary>
/// 回传事件参数类型
/// </summary>
public class EventTextBoxEventArgs:EventArgs
...{
private string _ToAppend;
EventTextBoxEventArgs()
...{
}
public EventTextBoxEventArgs(String ArgText)
...{
this._ToAppend=ArgText;
}
/**//// <summary>
/// 回传事件参数
/// </summary>
public String ArgText
...{
get...{return _ToAppend;}
set...{_ToAppend =value;}
}
}
/**//// <summary>
/// 从TextBox继承,实现了IPostBackEventHandler接口
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:EventTextBox runat=server></{0}:EventTextBox>")]
public class EventTextBox : System.Web.UI.WebControls.TextBox,IPostBackEventHandler
...{
//private string text;
private static readonly object objEventChangedKey;
public delegate void EventChangedHandler(object sender,EventTextBoxEventArgs e);
[Bindable(false),
Category("Appearance"),
DefaultValue("")]
public string PrefixText
...{
get
...{ if (ViewState["PrefixText"] == null)
return "";
else
return ViewState["PrefixText"].ToString() ;
}
set
...{
ViewState["PrefixText"] = value;
}
}
/**//// <summary>
/// 引起回传的事件名称
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("引起回传的事件名称")]
public string EventName
...{
get
...{ if (ViewState["EventName"] == null)
return "";
else
return ViewState["EventName"].ToString() ;
}
set
...{
ViewState["EventName"] = value;
}
}
/**//// <summary>
/// 回传事件参数
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("回传事件参数")]
public string EventArgText
...{
get
...{ if (ViewState["EventArgText"] == null)
return "";
else
return ViewState["EventArgText"].ToString() ;
}
set
...{
ViewState["EventArgText"] = value;
}
}
/**//// <summary>
/// 用户自定义的回传函数
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("用户自定义的回传函数,为空则使用标准的回传函数")]
public String UserPostBackFunction
...{
get
...{ if (ViewState["UserPostBackFunction"] == null)
return "";
else
return ViewState["UserPostBackFunction"].ToString() ;
}
set
...{
ViewState["UserPostBackFunction"] = value;
}
}
protected virtual void OnEventChanged(EventTextBoxEventArgs e)
...{
EventChangedHandler handler1 = (EventChangedHandler) base.Events[objEventChangedKey];
if (handler1 != null)
...{
handler1(this, e);
}
}
public void RemoveStateView(String strKey)
...{
this.ViewState.Remove(strKey);
}
[Description("EventTextBox_OnEventChanged"), Category("Action")]
public event EventChangedHandler EventChanged
...{
add
...{
base.Events.AddHandler(objEventChangedKey, value);
}
remove
...{
base.Events.RemoveHandler(objEventChangedKey, value);
}
}
/**//// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
...{
EventChangedHandler handler1 = (EventChangedHandler) base.Events[objEventChangedKey];
if (handler1 != null && EventName != String.Empty)
...{
base.Attributes[EventName]=UserPostBackFunction==""? Page.GetPostBackClientEvent(this,EventArgText):UserPostBackFunction;
if(PrefixText != "" && !base.Text.StartsWith(PrefixText)) base.Text = PrefixText + base.Text;
}
base.Render(output);
}
//增加自己想渲染的属性
protected override void AddAttributesToRender(HtmlTextWriter writer)
...{
//writer.AddAttribute(HtmlTextWriterAttribute.Title,"PEOControl");
base.AddAttributesToRender (writer);
}
IPostBackEventHandler 成员#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
...{
// TODO: 添加RaisePostBackEvent 实现
EventTextBoxEventArgs e = new EventTextBoxEventArgs(eventArgument);
OnEventChanged(e);
}
#endregion
}
}
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace PEONormalControl
...{
/**//// <summary>
/// 回传事件参数类型
/// </summary>
public class EventTextBoxEventArgs:EventArgs
...{
private string _ToAppend;
EventTextBoxEventArgs()
...{
}
public EventTextBoxEventArgs(String ArgText)
...{
this._ToAppend=ArgText;
}
/**//// <summary>
/// 回传事件参数
/// </summary>
public String ArgText
...{
get...{return _ToAppend;}
set...{_ToAppend =value;}
}
}
/**//// <summary>
/// 从TextBox继承,实现了IPostBackEventHandler接口
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:EventTextBox runat=server></{0}:EventTextBox>")]
public class EventTextBox : System.Web.UI.WebControls.TextBox,IPostBackEventHandler
...{
//private string text;
private static readonly object objEventChangedKey;
public delegate void EventChangedHandler(object sender,EventTextBoxEventArgs e);
[Bindable(false),
Category("Appearance"),
DefaultValue("")]
public string PrefixText
...{
get
...{ if (ViewState["PrefixText"] == null)
return "";
else
return ViewState["PrefixText"].ToString() ;
}
set
...{
ViewState["PrefixText"] = value;
}
}
/**//// <summary>
/// 引起回传的事件名称
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("引起回传的事件名称")]
public string EventName
...{
get
...{ if (ViewState["EventName"] == null)
return "";
else
return ViewState["EventName"].ToString() ;
}
set
...{
ViewState["EventName"] = value;
}
}
/**//// <summary>
/// 回传事件参数
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("回传事件参数")]
public string EventArgText
...{
get
...{ if (ViewState["EventArgText"] == null)
return "";
else
return ViewState["EventArgText"].ToString() ;
}
set
...{
ViewState["EventArgText"] = value;
}
}
/**//// <summary>
/// 用户自定义的回传函数
/// </summary>
[Bindable(false),
Category("Behavior"),
DefaultValue(""),Description("用户自定义的回传函数,为空则使用标准的回传函数")]
public String UserPostBackFunction
...{
get
...{ if (ViewState["UserPostBackFunction"] == null)
return "";
else
return ViewState["UserPostBackFunction"].ToString() ;
}
set
...{
ViewState["UserPostBackFunction"] = value;
}
}
protected virtual void OnEventChanged(EventTextBoxEventArgs e)
...{
EventChangedHandler handler1 = (EventChangedHandler) base.Events[objEventChangedKey];
if (handler1 != null)
...{
handler1(this, e);
}
}
public void RemoveStateView(String strKey)
...{
this.ViewState.Remove(strKey);
}
[Description("EventTextBox_OnEventChanged"), Category("Action")]
public event EventChangedHandler EventChanged
...{
add
...{
base.Events.AddHandler(objEventChangedKey, value);
}
remove
...{
base.Events.RemoveHandler(objEventChangedKey, value);
}
}
/**//// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
...{
EventChangedHandler handler1 = (EventChangedHandler) base.Events[objEventChangedKey];
if (handler1 != null && EventName != String.Empty)
...{
base.Attributes[EventName]=UserPostBackFunction==""? Page.GetPostBackClientEvent(this,EventArgText):UserPostBackFunction;
if(PrefixText != "" && !base.Text.StartsWith(PrefixText)) base.Text = PrefixText + base.Text;
}
base.Render(output);
}
//增加自己想渲染的属性
protected override void AddAttributesToRender(HtmlTextWriter writer)
...{
//writer.AddAttribute(HtmlTextWriterAttribute.Title,"PEOControl");
base.AddAttributesToRender (writer);
}
IPostBackEventHandler 成员#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
...{
// TODO: 添加RaisePostBackEvent 实现
EventTextBoxEventArgs e = new EventTextBoxEventArgs(eventArgument);
OnEventChanged(e);
}
#endregion
}
}
- 实现了IPostBackEventHandler接口的TextBox
- IPostBackEventHandler 触发Web自定义控件事件的接口
- IPostBackEventHandler
- 给自定义控件(Web Control)添加事件的几种方法。前两种方法可以不实现IPostBackEventHandler
- 给自定义控件(Web Control)添加事件的几种方法。前两种方法可以不实现IPostBackEventHandler
- TextBox 中换行的实现
- 透明Textbox的简单实现!
- 生成textBox功能的实现
- 透明Textbox的简单实现!
- 类textBoxArray实现了动态增加和删除 textBox的功能
- 关于实现了接口BeanPostProcessor 和 接口FactoryBean 的注意事项
- TextBox控件的多样边框实现
- winfrom的textbox 实现验证功能
- TextBox控件的多样边框实现
- C# 中实现textbox的换行
- 实现带题头的TextBox和PasswordBox
- 实现只能输入数字的TextBox
- WinForm中,实现TextBox的验证
- Hibernate中的one-to-many
- CVS使用手册
- this指针
- 《仙剑奇侠传》观看日记(四)
- IT项目如何做好进度管理
- 实现了IPostBackEventHandler接口的TextBox
- MTL 矩阵逆阵 解线性方程
- 沙僧传
- 源码
- 用asp.net画饼图
- Hibernate查询语言:HQL (选择自 Jplateau 的 Blog )
- 我的第一个触发器练习
- 《深入浅出MFC读书笔记一》
- 插件框架