当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .net中Web自定义控件编写注意事项

ASP.NET
紧跟潮流:剖折QQ魔法表情实现原理
VB PDU mode 7 bit 解码
在主页面初始化时先打开连接
VB6窗体的生命周期
为.net中的ListBox控件添加双击事件
VB6中ADO流对象实现对二进制大型对象的读取方法
CASSINI源代码分析(4)
Mono开发指南:第一章 Mono介绍
ADO.NET Quiz 之对象序列化
Mono开发指南:第二章 安装Mono
Mono开发指南:第四章 Mono 初览
蛙蛙推荐:C#编码规范.doc
Mono开发指南:第三章 Hello Mono
Additional SOAP Namespaces Referenced In WSE 2.0 SOAP Headers
Mono开发指南:第五章 Gtk#编程
CASSINI源代码分析(5):总结
.Net线程学习手记(1)
关于C#中的结构(下)
如何用C#在Excel中生成图表?
Internet Explorer编程简述(一)

ASP.NET 中的 .net中Web自定义控件编写注意事项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 201 ::
收藏到网摘: n/a


  如果重载本身父类提供的enable属性,将导致无法将子控件中的值用viewstate回传,即无法保持状态。所以最好自己定义该类属性并实现。
  定义属性时,如果是子控件本身属性的反映,可以直接取其值,值将自动保留,如果属于自己定义的属性,用viewState保留状态
  例如:


  ///
  /// 文本框值 txtMD是一个Web TextBox
  ///

  [Bindable(true),
  Category("Appearance"),
  DefaultValue("")]
  public string Text
  {
  get
  {
  if(txtMD.Text!="")
  return txtMD.Text;
  else
  return "";
  }
  set
  {
  txtMD.Text=value;
  }
  }


  自定义属性:

  ///
  /// 参考录入窗口宽度
  ///

  [Bindable(true),
  Category("Appearance"),
  DefaultValue("50")]
  public int TextBoxMaxLength
  {
  get
  {
  return ViewState[this.UniqueID+"TextBoxMaxLength"]==null?50:(int)ViewState[this.UniqueID+"TextBoxMaxLength"];
  }
  set
  {
  ViewState[this.UniqueID+"TextBoxMaxLength"]=value;

  }
  }
  
  注意:加上this.UniqueID是区分多个相同控件在同一页面上时的相同属性。