上接扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)

 
 
四、新建一个继承自CollectionBase的类CheckboxAlls
using System.Collections;
using System.ComponentModel;
using System.Web.UI;

namespace YYControls.SmartGridView
{
         /// <summary>
         /// CheckboxAlls 的摘要说明。
         /// 注意要继承自CollectionBase
         /// </summary>
        [
        ToolboxItem( false),
        ParseChildren( true)
        ]
         public class CheckboxAlls : CollectionBase
        {
                 /// <summary>
                 /// 构造函数
                 /// </summary>
                 public CheckboxAlls()
                        : base()
                {
                }

                 /// <summary>
                 /// 实现IList接口
                 /// 获取或设置指定索引处的元素。
                 /// </summary>
                 /// <param name="index">要得到或设置的元素从零开始的索引</param>
                 /// <returns></returns>
                 public CheckboxAll this[ int index]
                {
                        get
                        {
                                 return (CheckboxAll) base.List[index];
                        }
                        set
                        {
                                 base.List[index] = (CheckboxAll)value;
                        }
                }

                 /// <summary>
                 /// 实现IList接口
                 /// 将某项添加到 System.Collections.IList 中。
                 /// </summary>
                 /// <param name="item">要添加到 System.Collections.IList 的 System.Object。</param>
                 public void Add(CheckboxAll item)
                {
                         base.List.Add(item);
                }

                 /// <summary>
                 /// 实现IList接口
                 /// 从 System.Collections.IList 中移除特定对象的第一个匹配项。
                 /// </summary>
                 /// <param name="index">要从 System.Collections.IList 移除的 System.Object</param>
                 public void Remove( int index)
                {
                         if (index > -1 && index < base.Count)
                        {
                                 base.List.RemoveAt(index);
                        }
                }
        }
}
 
 
五、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第4步建立的那个CheckboxAlls
private CheckboxAlls _checkboxAlls;
                 /// <summary>
                 /// 复选框组集合 一个组由一个 全选复选框 和多个 项复选框组成
                 /// </summary>
                [
                PersistenceMode(PersistenceMode.InnerProperty),
                DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
                Description( "复选框组集合 一个组由一个 全选复选框 和多个 项复选框组成"),
                Category( "扩展")
                ]
                 public virtual CheckboxAlls CheckboxAlls
                {
                        get
                        {
                                 if (_checkboxAlls == null)
                                {
                                        _checkboxAlls = new CheckboxAlls();
                                }
                                 return _checkboxAlls;
                        }
                }
 

六、声明一些内部属性
/// <summary>
                 /// 隐藏字段的ID,用于存每组的全选复选框ID
                 /// </summary>
                 protected string HiddenCheckboxAllID
                {
                        get { return "hdn_checkboxAll"; }
                }
                 /// <summary>
                 /// 隐藏字段的ID,用于存每组的项复选框ID
                 /// </summary>
                 protected string HiddenCheckboxItemID
                {
                        get { return "hdn_checkboxItem"; }
                }

                 /// <summary>
                 /// 组分隔符,一个 全选复选框 和其对应的n个 项复选框 为一个组
                 /// </summary>
                 protected char GroupSeparator
                {
                        get { return ','; }
                }
                 /// <summary>
                 /// 项分隔符,项复选框 每一个项之间的分隔符
                 /// </summary>
                 protected char ItemSeparator
                {
                        get { return '|'; }
                }
 
 
 
相关文章
相关标签/搜索