扩展Label控件(1) - 实现回发(Postback)功能
来源:互联网 发布:国际原油看盘软件 编辑:程序博客网 时间:2024/06/17 22:52
Label控件既强大又好用。为了让它更强大、更好用,我们来写一个继承自Label的控件。
[源码下载]
作者:webabcd
介绍
扩展Label控件:
通过注册HiddenField控件,使Label控件支持回发(Postback)功能
使用方法(设置属性):
EnablePostback - 是否启用Label控件的回发(Postback)
HiddenFieldPostfix - 使Label支持回发(Postback)的隐藏控件的后缀名
关键代码
ScriptLibrary.js
//----------------------------
// http://webabcd.cnblogs.com/
//----------------------------
![](/Images/OutliningIndicators/None.gif)
function yy_sl_copyTextToHiddenField(source, destination)
{
/// <summary>将Label控件的的值赋给隐藏控件</summary>
![](/Images/OutliningIndicators/InBlock.gif)
document.getElementById(destination).value = document.getElementById(source).innerHTML;
}
SmartLabel.cs
using System;
using System.Collections.Generic;
using System.Text;
![](/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
using System.Web.UI;
![](/Images/OutliningIndicators/None.gif)
[assembly: System.Web.UI.WebResource("YYControls.SmartLabel.Resources.ScriptLibrary.js", "text/javascript")]
![](/Images/OutliningIndicators/None.gif)
namespace YYControls
{
/// <summary>
/// SmartLabel类,继承自DropDownList
/// </summary>
[ToolboxData(@"<{0}:SmartLabel runat='server'></{0}:SmartLabel>")]
[System.Drawing.ToolboxBitmap(typeof(YYControls.Resources.Icon), "SmartLabel.bmp")]
public partial class SmartLabel : Label
{
/// <summary>
/// 构造函数
/// </summary>
public SmartLabel()
{
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
/// <summary>
/// OnPreRender
/// </summary>
/// <param name="e">e</param>
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
![](/Images/OutliningIndicators/InBlock.gif)
// 实现Label控件的回发(Postback)功能
ImplementPostback();
}
}
}
![](/Images/OutliningIndicators/None.gif)
Property.cs
using System;
using System.Collections.Generic;
using System.Text;
![](/Images/OutliningIndicators/None.gif)
using System.ComponentModel;
using System.Web.UI;
![](/Images/OutliningIndicators/None.gif)
namespace YYControls
{
/// <summary>
/// SmartLabel类的属性部分
/// </summary>
public partial class SmartLabel
{
/// <summary>
/// 使Label支持回发(Postback)的隐藏控件的后缀名
/// </summary>
[
Browsable(true),
Description("使Label支持回发(Postback)的隐藏控件的后缀名"),
Category("扩展"),
DefaultValue("EnablePostback")
]
public virtual string HiddenFieldPostfix
{
get
{
string s = (string)ViewState["HiddenFieldPostfix"];
![](/Images/OutliningIndicators/InBlock.gif)
return (s == null) ? "EnablePostback" : s;
}
set
{
ViewState["HiddenFieldPostfix"] = value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
/// <summary>
/// 是否启用Label控件的回发(Postback)
/// </summary>
[
Browsable(true),
Description("是否启用Label控件的回发(Postback)"),
Category("扩展"),
DefaultValue(false)
]
public virtual bool EnablePostback
{
get
{
bool? b = (bool?)ViewState["EnablePostback"];
![](/Images/OutliningIndicators/InBlock.gif)
return (b == null) ? false : (bool)b;
}
![](/Images/OutliningIndicators/InBlock.gif)
set
{
ViewState["EnablePostback"] = value;
}
}
}
}
![](/Images/OutliningIndicators/None.gif)
EnablePostback.cs
using System;
using System.Collections.Generic;
using System.Text;
![](/Images/OutliningIndicators/None.gif)
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web;
![](/Images/OutliningIndicators/None.gif)
namespace YYControls
{
/// <summary>
/// SmartLabel类的属性部分
/// </summary>
public partial class SmartLabel
{
/// <summary>
/// 实现Label控件的回发(Postback)功能
/// </summary>
private void ImplementPostback()
{
if (this.EnablePostback)
{
// 使Label支持回发(Postback)的隐藏控件的ID
string hiddenFieldId = string.Concat(this.ClientID, "_", HiddenFieldPostfix);
![](/Images/OutliningIndicators/InBlock.gif)
// 注册隐藏控件
Page.ClientScript.RegisterHiddenField(hiddenFieldId, "");
![](/Images/OutliningIndicators/InBlock.gif)
// 注册客户端脚本
this.Page.ClientScript.RegisterClientScriptResource(this.GetType(),
"YYControls.SmartLabel.Resources.ScriptLibrary.js");
![](/Images/OutliningIndicators/InBlock.gif)
// 表单提交前将Label控件的的值赋给隐藏控件
this.Page.ClientScript.RegisterOnSubmitStatement(this.GetType(),
string.Format("yy_sl_enablePostback_{0}",
this.ClientID),
string.Format("yy_sl_copyTextToHiddenField('{0}', '{1}')",
this.ClientID,
hiddenFieldId));
}
}
![](/Images/OutliningIndicators/InBlock.gif)
/// <summary>
/// 获取或设置 YYControls.SmartLabel 控件的文本内容
/// </summary>
public override string Text
{
get
{
try
{
if (this.EnablePostback && !string.IsNullOrEmpty(HttpContext.Current.Request[string.Concat(this.ClientID, "_", HiddenFieldPostfix)]))
{
// 隐藏控件的值
return HttpContext.Current.Request[string.Concat(this.ClientID, "_", HiddenFieldPostfix)];
}
else
{
return base.Text;
}
}
catch
{
return base.Text;
}
}
set
{
try
{
if (this.EnablePostback && !string.IsNullOrEmpty(HttpContext.Current.Request[string.Concat(this.ClientID, "_", HiddenFieldPostfix)]))
{
// 隐藏控件的值
base.Text = HttpContext.Current.Request[string.Concat(this.ClientID, "_", HiddenFieldPostfix)];
}
else
{
base.Text = value;
}
}
catch
{
base.Text = value;
}
}
}
}
}
![](/Images/OutliningIndicators/None.gif)
OK
[源码下载]
[源码下载]
扩展Label控件(1) - 实现回发(Postback)功能
作者:webabcd
介绍
扩展Label控件:
通过注册HiddenField控件,使Label控件支持回发(Postback)功能
使用方法(设置属性):
EnablePostback - 是否启用Label控件的回发(Postback)
HiddenFieldPostfix - 使Label支持回发(Postback)的隐藏控件的后缀名
关键代码
ScriptLibrary.js
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
SmartLabel.cs
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
Property.cs
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
EnablePostback.cs
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
OK
[源码下载]
- 扩展Label控件(1) - 实现回发(Postback)功能
- 扩展Label控件(1) - 实现回发(Postback)功能
- 扩展Label控件(1) - 实现回发(Postback)功能
- 扩展Label控件(1) - 实现回发(Postback)功能
- Postback回发事件的真实感触
- Label实现复制文字功能
- 扩展 TreeView 实现选择 CheckBox 自动回发
- 扩展treeview实现选择checkbox自动回发
- 扩展 TreeView 实现选择 CheckBox 自动回发
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结 .
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- CListCtrl控件功能扩展总结
- 新瓶旧酒ASP.NET AJAX系列文章索引
- 招聘ASP.NET高级·中级软件开发工程师[北京][过期]
- 温故知新ASP.NET 2.0(C#)系列文章索引
- 在WebSphere7中配置Seam2的配置文件
- 化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException<T>、IErrorHandler)
- 扩展Label控件(1) - 实现回发(Postback)功能
- 扩展DropDownList控件和ListBox控件(1) - 支持分组功能(optgroup标签)
- 化零为整WCF(3) - 绑定Binding(basicHttpBinding和netTcpBinding)
- 化零为整WCF(2) - 契约Contract(ServiceContract、OperationContract、DataContract、ServiceKnownType和DataMember)
- 化零为整WCF(1) - 不能免俗,我也从Hello开始
- 积少成多Flash ActionScript 3.0(3) - 基础之以文本形式、XML形式和JSON形式与ASP.NET通信
- 积少成多Flash ActionScript 3.0(2) - 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- 积少成多Flash ActionScript 3.0(1) - 基础之数据类型、操作符和流程控制语句
- Oracle分析函数详述