NetAdvantage的UltraWebGrid的全选控件设计

来源:互联网 发布:超声波洗牙器 知乎 编辑:程序博客网 时间:2024/04/28 17:17

【对Infragistics.WebUI.UltraWebGrid.UltraWebGrid的某一列进行全选,当然这一列的Type是Checkbox】

代码很简单,主要是注册一段js,根据UltraWebGrid的实现特点,巧妙调用其js库。这样不要postback到Server端,避免无谓刷新。

两个主要属性是:

1.要设置的Grid的ID——ControlGridID;

2.要设置的Grid的列的索引号——CheckColumnIndex。

  1. using System;
  2. using System.Web.UI;
  3. using System.Web.UI.WebControls;
  4. using System.ComponentModel;
  5. namespace SelAllControl
  6. {
  7.  /// <summary>
  8.  /// SelectAll 的摘要说明。
  9.  /// </summary>
  10.  [DefaultProperty("Text"),
  11.   ToolboxData("<{0}:SelectAll runat=server></{0}:SelectAll>")]
  12.  public class SelectAll : System.Web.UI.WebControls.CheckBox
  13.  {
  14.   private string m_strControlGridID;
  15.   private int m_iColIndex;
  16.   public SelectAll()
  17.   {
  18.    m_iColIndex = 0;
  19.   }
  20.   /// <summary>
  21.   /// 获取并设置需要控制的Grid的ID
  22.   /// </summary>
  23.   [Category("Appearance")]
  24.   [Description("设置需要控制的Grid的ID")]
  25.   public string ControlGridID
  26.   {
  27.    get
  28.    { 
  29.     return this.m_strControlGridID;
  30.    }
  31.    set
  32.    {
  33.     this.m_strControlGridID = value;
  34.    }
  35.   }
  36.   /// <summary>
  37.   /// 获取并设置需要控制的Grid的CheckBox列的索引号
  38.   /// 默认为0
  39.   /// </summary>
  40.   [Category("Appearance")]
  41.   [Description("设置需要控制的Grid的ID")]
  42.   [DefaultValue(0)]
  43.   public int CheckColumnIndex
  44.   {
  45.    get
  46.    {
  47.     return m_iColIndex;
  48.    }
  49.    set
  50.    {
  51.     m_iColIndex = value;
  52.    }
  53.   }
  54.   private void AssignScript()
  55.   {
  56.    string strScript = "var strGridID = '"+this.ControlGridID+"'; if(null==strGridID || strGridID.length<=0){return;} try {var oGrid = o"+this.ControlGridID+"; var oRows = oGrid.Rows; var objCurState = document.getElementById('"+this.ClientID+"'); var objSetValue = objCurState.checked;  for(i=0;i<oRows.length;i++) { (oRows.getRow(i).getCell("+CheckColumnIndex.ToString()+")).setValue(objSetValue); }} catch(e){ return; }";
  57.    base.Attributes.Add("onClick",strScript);
  58.   }
  59.   /// <summary>
  60.   /// 将此控件呈现给指定的输出参数。
  61.   /// </summary>
  62.   /// <param name="output"> 要写出到的 HTML 编写器 </param>
  63.   protected override void Render(HtmlTextWriter output)
  64.   {
  65.    this.ID = this.ClientID;
  66.    AssignScript();
  67.    base.Render(output);
  68.   }
  69.  }
  70. }

原创粉丝点击