NetAdvantage的UltraWebGrid的全选控件设计

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

【对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

{

/// <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库中自带的函数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航