NetAdvantage的UltraWebGrid的全选控件设计

【对Infragistics.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
{
///

1<summary>   
2/// SelectAll 的摘要说明。   
3/// </summary>

[DefaultProperty("Text"),
ToolboxData("<{0}:SelectAll runat=server>

")]
public class SelectAll : System.Web.UI.WebControls.CheckBox
{
private string m_strControlGridID;
private int m_iColIndex;

public SelectAll()
{
m_iColIndex = 0;
}

///

1<summary>   
2/// 获取并设置需要控制的Grid的ID   
3/// </summary>

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

///

1<summary>   
2/// 获取并设置需要控制的Grid的CheckBox列的索引号   
3/// 默认为0   
4/// </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

 1<orows.length;i++) (orows.getrow(i).getcell("+checkcolumnindex.tostring()+")).setvalue(objsetvalue);="" <summary="" base.attributes.add("onclick",strscript);="" catch(e){="" return;="" {="" }="" }";="" }}="">   
 2/// 将此控件呈现给指定的输出参数。   
 3///    
 4/// <param name="output"/> 要写出到的 HTML 编写器    
 5protected override void Render(HtmlTextWriter output)   
 6{   
 7this.ID = this.ClientID;   
 8AssignScript();   
 9base.Render(output);   
10}   
11}   
12}   
13
14
15在注册的js中o开始的那些变量实际上是借用了UltraWebGrid本身在客户端声明的一些js变量。getRow(),getCell(),setValue()等也是其js库中自带的函数。</orows.length;i++)>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus