【对Infragistics.WebUI.UltraWebGrid.UltraWebGrid的某一列进行全选,当然这一列的Type是Checkbox】
代码很简单,主要是注册一段js,根据UltraWebGrid的实现特点,巧妙调用其js库。这样不要postback到Server端,避免无谓刷新。
两个主要属性是:
1.要设置的Grid的ID——ControlGridID;
2.要设置的Grid的列的索引号——CheckColumnIndex。
- usingSystem;
- usingSystem.Web.UI;
- usingSystem.Web.UI.WebControls;
- usingSystem.ComponentModel;
- namespaceSelAllControl
- {
- ///<summary>
- ///SelectAll的摘要说明。
- ///</summary>
- [DefaultProperty("Text"),
- ToolboxData("<{0}:SelectAllrunat=server></{0}:SelectAll>")]
- publicclassSelectAll:System.Web.UI.WebControls.CheckBox
- {
- privatestringm_strControlGridID;
- privateintm_iColIndex;
- publicSelectAll()
- {
- m_iColIndex=0;
- }
- ///<summary>
- ///获取并设置需要控制的Grid的ID
- ///</summary>
- [Category("Appearance")]
- [Description("设置需要控制的Grid的ID")]
- publicstringControlGridID
- {
- get
- {
- returnthis.m_strControlGridID;
- }
- set
- {
- this.m_strControlGridID=value;
- }
- }
- ///<summary>
- ///获取并设置需要控制的Grid的CheckBox列的索引号
- ///默认为0
- ///</summary>
- [Category("Appearance")]
- [Description("设置需要控制的Grid的ID")]
- [DefaultValue(0)]
- publicintCheckColumnIndex
- {
- get
- {
- returnm_iColIndex;
- }
- set
- {
- m_iColIndex=value;
- }
- }
- privatevoidAssignScript()
- {
- stringstrScript="varstrGridID='"+this.ControlGridID+"';if(null==strGridID||strGridID.length<=0){return;}try{varoGrid=o"+this.ControlGridID+";varoRows=oGrid.Rows;varobjCurState=document.getElementById('"+this.ClientID+"');varobjSetValue=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>
- ///<paramname="output">要写出到的HTML编写器</param>
- protectedoverridevoidRender(HtmlTextWriteroutput)
- {
- this.ID=this.ClientID;
- AssignScript();
- base.Render(output);
- }
- }
- }