NetAdvantage的UltraWebGrid的全选控件设计

Infra GIStics. WebUI.UltraWebGrid.UltraWebGrid的某一列进行全选,当然这一列的Type是Checkbox】

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

两个主要属性是:

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

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

 

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace SelAllControl
{
 /// <summary>
 /// SelectAll 的摘要说明。
 /// </summary>
 [DefaultProperty("Text"),
  ToolboxData("<{0}:SelectAll runat=server></{0}:SelectAll>")]
 public class SelectAll : System.Web.UI.WebControls.CheckBox
 {
  private string m_strControlGridID;
  private int m_iColIndex;

  public SelectAll()
  {
   m_iColIndex = 0;
  }


  /// <summary>
  /// 获取并设置需要控制的Grid的ID
  /// </summary>
  [Category("Appearance")]
  [Description("设置需要控制的Grid的ID")]
  public string ControlGridID
  {
   get
   { 
    return this.m_strControlGridID;
   }
   set
   {
    this.m_strControlGridID = value;
   }
  }

  /// <summary>
  /// 获取并设置需要控制的Grid的CheckBox列的索引号
  /// 默认为0
  /// </summary>
  [Category("Appearance")]
  [Description("设置需要控制的Grid的ID")]
  [DefaultValue(0)]
  public int CheckColumnIndex
  {
   get
   {
    return m_iColIndex;
   }
   set
   {
    m_iColIndex = value;
   }
  }

  private void AssignScript()
  {
   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; }";
   base.Attributes.Add("onClick",strScript);
  }

  /// <summary>
  /// 将此控件呈现给指定的输出参数。
  /// </summary>
  /// <param name="output"> 要写出到的 HTML 编写器 </param>
  protected override void Render(HtmlTextWriter output)
  {
   this.ID = this.ClientID;
   AssignScript();
   base.Render(output);
  }
 }
}

 

在注册的js中o开始的那些变量实际上是借用了UltraWebGrid本身在 客户 端声明的一些js变量。getRow(),getCell(),setValue()等也是其js库中自带的函数。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值