技术开发 频道

扩展Label控件-实现回发(Postback)功能


【IT168技术文档】

  介绍
  扩展Label控件:
  通过注册HiddenField控件,使Label控件支持回发(Postback)功能

  使用方法(设置属性):
  EnablePostback - 是否启用Label控件的回发(Postback)
  HiddenFieldPostfix - 使Label支持回发(Postback)的隐藏控件的后缀名


  关键代码
  ScriptLibrary.js
//---------------------------- // http://webabcd.cnblogs.com/ //---------------------------- function yy_sl_copyTextToHiddenField(source, destination) { /// <summary>将Label控件的的值赋给隐藏控件</summary> document.getElementById(destination).value = document.getElementById(source).innerHTML; }
  SmartLabel.cs
using System; using System.Collections.Generic; using System.Text; using System.Web.UI.WebControls; using System.Web.UI; [assembly: System.Web.UI.WebResource("YYControls.SmartLabel.Resources.ScriptLibrary.js", "text/javascript")] 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() { } /**//// <summary> /// OnPreRender /// </summary> /// <param name="e">e</param> protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); // 实现Label控件的回发(Postback)功能 ImplementPostback(); } } }
  Property.cs
using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Web.UI; 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"]; return (s == null) ? "EnablePostback" : s; } set { ViewState["HiddenFieldPostfix"] = value; } } /**//// <summary> /// 是否启用Label控件的回发(Postback) /// </summary> [ Browsable(true), Description("是否启用Label控件的回发(Postback)"), Category("扩展"), DefaultValue(false) ] public virtual bool EnablePostback { get { bool? b = (bool?)ViewState["EnablePostback"]; return (b == null) ? false : (bool)b; } set { ViewState["EnablePostback"] = value; } } } }
0
相关文章