NetAdvantage的UltraWebGrid的全选控件设计

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

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

两个主要属性是:

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

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

  1. usingSystem;
  2. usingSystem.Web.UI;
  3. usingSystem.Web.UI.WebControls;
  4. usingSystem.ComponentModel;
  5. namespaceSelAllControl
  6. {
  7. ///<summary>
  8. ///SelectAll的摘要说明。
  9. ///</summary>
  10. [DefaultProperty("Text"),
  11. ToolboxData("<{0}:SelectAllrunat=server></{0}:SelectAll>")]
  12. publicclassSelectAll:System.Web.UI.WebControls.CheckBox
  13. {
  14. privatestringm_strControlGridID;
  15. privateintm_iColIndex;
  16. publicSelectAll()
  17. {
  18. m_iColIndex=0;
  19. }
  20. ///<summary>
  21. ///获取并设置需要控制的Grid的ID
  22. ///</summary>
  23. [Category("Appearance")]
  24. [Description("设置需要控制的Grid的ID")]
  25. publicstringControlGridID
  26. {
  27. get
  28. {
  29. returnthis.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. publicintCheckColumnIndex
  44. {
  45. get
  46. {
  47. returnm_iColIndex;
  48. }
  49. set
  50. {
  51. m_iColIndex=value;
  52. }
  53. }
  54. privatevoidAssignScript()
  55. {
  56. 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;}";
  57. base.Attributes.Add("onClick",strScript);
  58. }
  59. ///<summary>
  60. ///将此控件呈现给指定的输出参数。
  61. ///</summary>
  62. ///<paramname="output">要写出到的HTML编写器</param>
  63. protectedoverridevoidRender(HtmlTextWriteroutput)
  64. {
  65. this.ID=this.ClientID;
  66. AssignScript();
  67. base.Render(output);
  68. }
  69. }
  70. }

你可能感兴趣的:(grid)