天天看點

.net中Web自定義控件編寫注意事項

  如果重載本身父類提供的enable屬性,将導緻無法将子控件中的值用viewstate回傳,即無法保持狀态。是以最好自己定義該類屬性并實作。

  定義屬性時,如果是子控件本身屬性的反映,可以直接取其值,值将自動保留,如果屬于自己定義的屬性,用viewState保留狀态

  例如:

   /// <summary>

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

  /// </summary>

  [Bindable(true),

  Category("Appearance"),

  DefaultValue("")]

  public string Text

  {

  get

  if(txtMD.Text!="")

  return txtMD.Text;

  else

  return "";

  }

  set

  {               

  txtMD.Text=value;

  自定義屬性:

  /// 參考錄入視窗寬度

  DefaultValue("50")]

  public int TextBoxMaxLength

  return ViewState[this.UniqueID+"TextBoxMaxLength"]==null?50:(int)ViewState[this.UniqueID+"TextBoxMaxLength"];

  ViewState[this.UniqueID+"TextBoxMaxLength"]=value;

  注意:加上this.UniqueID是區分多個相同控件在同一頁面上時的相同屬性。 

作者:qiuchun