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

GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[索引页]
[×××]


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


作者:webabcd
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)/*正式版的实现 开始*/
介绍
扩展GridView控件:
联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框为选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态

使用方法(设置CascadeCheckboxes集合属性):
ParentCheckboxID - 模板列中 父复选框ID
ChildCheckboxID - 模板列中 子复选框ID
YYControls.Helper.SmartGridView中的静态方法
List<DataKey> GetCheckedDataKey(GridView gv, int columnIndex)
List<DataKey> GetCheckedDataKey(GridView gv, string checkboxId)


关键代码
js
/*联动复选框 开始*/
var yy_sgv_ccGridView_pre = new Array(); // cs中动态向其灌数据(GridView内控件ID的前缀数组)
var yy_sgv_ccAll_post = new Array(); // cs中动态向其灌数据(全选复选框ID的后缀数组)
var yy_sgv_ccItem_post = new Array(); // cs中动态向其灌数据(项复选框ID的后缀数组)

function yy_sgv_ccCheck(e)    
{
/// <summary>单击复选框时</summary>

        var evt = e || window.event; // FF || IE
        var obj = evt.target || evt.srcElement    // FF || IE

        var ccIndex = -1;
        for (var i=0; i<yy_sgv_ccGridView_pre.length; i++)
        {        
                if (obj.id.yy_sgv_startsWith(yy_sgv_ccGridView_pre[i]))
                {
                        ccIndex = i;
                        break;
                }
        }
        
        if (ccIndex != -1)
        {
                if (obj.id.yy_sgv_endsWith(yy_sgv_ccAll_post[i]))
                {
                        yy_sgv_ccCheckAll(ccIndex, obj.checked);
                }
                else if (obj.id.yy_sgv_endsWith(yy_sgv_ccItem_post[i]))
                {
                        yy_sgv_ccCheckItem(ccIndex);
                }
        }
}

function yy_sgv_ccCheckAll(ccIndex, isCheckAll)
{
/// <summary>设置全选复选框的状态</summary>

        var elements =    document.getElementsByTagName("INPUT");
        
        for (i=0; i< elements.length; i++)    
        {                
                if (elements[i].type == 'checkbox'    
                        && elements[i].id.yy_sgv_startsWith(yy_sgv_ccGridView_pre[ccIndex])    
                        && elements[i].id.yy_sgv_endsWith(yy_sgv_ccItem_post[ccIndex]))    
                {
                        elements[i].checked = isCheckAll;
                        
                        if (yy_sgv_crClassName != '')
                        {
                                yy_sgv_changeCheckedRowCssClass(elements[i], yy_sgv_crClassName, false);
                        }
                }
        }        
}

function yy_sgv_ccCheckItem(ccIndex)
{
/// <summary>单击项复选框时</summary>

        var elements =    document.getElementsByTagName("INPUT");
        
        var checkedNum = 0;
        var uncheckedNum = 0;
        
        for (i=0; i< elements.length; i++)    
        {                
                if (elements[i].type == 'checkbox'    
                        && elements[i].id.yy_sgv_startsWith(yy_sgv_ccGridView_pre[ccIndex])    
                        && elements[i].id.yy_sgv_endsWith(yy_sgv_ccItem_post[ccIndex]))    
                {
                        if (elements[i].checked)
                        {
                                checkedNum++;
                        }
                        else
                        {
                                uncheckedNum++;
                        }
                }
        }
        
        if (uncheckedNum == 0)
        {
                yy_sgv_ccCheckCheckbox(yy_sgv_ccGridView_pre[ccIndex], yy_sgv_ccAll_post[ccIndex], true)
        }
        else
        {
                yy_sgv_ccCheckCheckbox(yy_sgv_ccGridView_pre[ccIndex], yy_sgv_ccAll_post[ccIndex], false)
        }
}

function yy_sgv_ccCheckCheckbox(pre, post, isCheckAll)
{
/// <summary>设置项复选框的状态</summary>

        var elements =    document.getElementsByTagName("INPUT");
        
        for (i=0; i< elements.length; i++)    
        {                
                if (elements[i].type == 'checkbox'
                        && elements[i].id.yy_sgv_startsWith(pre)    
                        && elements[i].id.yy_sgv_endsWith(post))    
                {
                        elements[i].checked = isCheckAll;
                        break;
                }
        }        
}

function yy_sgv_ccListener()
{
/// <summary>监听所有联动复选框的单击事件</summary>

        var elements =    document.getElementsByTagName("INPUT");
        
        for (i=0; i< elements.length; i++)    
        {                
                if (elements[i].type == 'checkbox')    
                {
                        for (j=0; j<yy_sgv_ccGridView_pre.length; j++)
                        {
                                if (elements[i].id.yy_sgv_startsWith(yy_sgv_ccGridView_pre[j])    
                                        && (elements[i].id.yy_sgv_endsWith(yy_sgv_ccAll_post[j]) || elements[i].id.yy_sgv_endsWith(yy_sgv_ccItem_post[j])))
                                {
                                        yy_sgv_addEvent(elements[i], 'click', yy_sgv_ccCheck);    
                                        break;
                                }
                        }
                }
        }        
}
        
if (document.all)
{
        window.attachEvent(' yy_sgv_ccListener)
}
else
{
        window.addEventListener('load', yy_sgv_ccListener, false);
}
/*联动复选框 结束*/
 
c#
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Web.UI.WebControls;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)namespace YYControls.SmartGridViewFunction
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选){
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// 扩展功能:联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        public class CascadeCheckboxFunction : ExtendFunction
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// 构造函数
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                public CascadeCheckboxFunction()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        : base()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// 构造函数
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <param name="sgv">SmartGridView对象</param>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                public CascadeCheckboxFunction(SmartGridView sgv)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        : base(sgv)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// 扩展功能的实现
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                protected override void Execute()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        this._sgv.PreRender += new EventHandler(_sgv_PreRender);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// SmartGridView的PreRender事件
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <param name="sender"></param>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <param name="e"></param>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                void _sgv_PreRender(object sender, EventArgs e)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        // 构造向数组中添加成员的脚本
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        string scriptString = "";
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        foreach (CascadeCheckbox cc in this._sgv.CascadeCheckboxes)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                scriptString += String.Format("yy_sgv_ccGridView_pre.push('{0}');", Helper.Common.GetChildControlPrefix(this._sgv));
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                scriptString += String.Format("yy_sgv_ccAll_post.push('{0}');", cc.ParentCheckboxID);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                scriptString += String.Format("yy_sgv_ccItem_post.push('{0}');", cc.ChildCheckboxID);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        // 注册向数组中添加成员的脚本
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        if (!this._sgv.Page.ClientScript.IsClientScriptBlockRegistered(String.Format("yy_sgv_cascadeCheckbox_{0}", this._sgv.ID)))
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                this._sgv.Page.ClientScript.RegisterClientScriptBlock
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                (
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        this._sgv.GetType(),
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        String.Format("yy_sgv_cascadeCheckbox_{0}", this._sgv.ID),
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        scriptString,
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        true
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                );
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)}
 
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)/*正式版的实现 结束*/
 
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)/*测试版的实现 开始*/
 
介绍
平时使用GridView的时候经常要给每行加一个复选框,然后还需要放置一个单独的全选复选框,通过单击它来让这些复选框全选或取消全选,每次实现这样的功能都要写一段javascript,麻烦,所以扩展它。


控件开发
1、新建一个继承自GridView的类。
/// <summary>
/// 继承自GridView
/// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)[ToolboxData(@"<{0}:SmartGridView runat='server'></{0}:SmartGridView>")]
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)public class SmartGridView : GridView
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选){
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)}
 
2、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)namespace YYControls.SmartGridView
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选){
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// javascript
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        public class JavaScriptConstant
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                internal const string jsCheckAll = @"<script type=""text/javascript"">
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                //<![CDATA[
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 隐藏字段的ID,用于存每组的全选复选框ID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var hdnAllName = '[$AllName$]';
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 隐藏字段的ID,用于存每的项复选框ID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var hdnItemName = '[$ItemName$]';
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 组分隔符,一个 全选复选框 和其对应的n个 项复选框 为一个组
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var groupSeparator = '[$GroupSeparator$]';
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 项分隔符,项复选框 每个项之间的分隔符
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var itemSeparator = '[$ItemSeparator$]';
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var strAlls = GetObject(hdnAllName).value;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var strItems = GetObject(hdnItemName).value;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 全选复选框数组
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var aryAlls = strAlls.split(groupSeparator);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 项复选框数组,每行有一个组的所有项复选框
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                var aryItems = strItems.split(groupSeparator);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 全选复选框被单击,参数为 该全选复选框这个对象
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                function ClickCheckAll(objAll)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        // 每个全选复选框
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        for (var i=0; i<aryAlls.length; i++)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                // 该全选复选框是所单击的全选复选框
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                if (aryAlls[i] == objAll.id)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        // 该全选复选框同组下的项复选框数组
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        aryItem = aryItems[i].split(itemSeparator);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        for (var j=0; j<aryItem.length; j++)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                // 单击的全选复选框是选中状态,并且项复选框不是disabled,则选中
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                if (objAll.checked && !GetObject(aryItem[j]).parentElement.disabled)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                        GetObject(aryItem[j]).checked = true;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                // 否则
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                else
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                        GetObject(aryItem[j]).checked = false;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        break;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                // 项复选框被单击
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                function ClickCheckItem()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        // 每组项复选框
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        for (var i=0; i<aryItems.length; i++)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                // 该组的所有项复选框数组
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                aryItem = aryItems[i].split(itemSeparator);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                // 标记,是否同组的项复选框都被选中
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                var bln = true;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                for (var j=0; j<aryItem.length; j++)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        // 如果该项复选框没被选中,并且不是disabled,则bln设为false
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        if (!GetObject(aryItem[j]).checked && !GetObject(aryItem[j]).parentElement.disabled)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                bln = false;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                                break;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                // bln为true,则设置同组的全选复选框为选中
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                if (bln)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        GetObject(aryAlls[i]).checked = true;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                // 否则
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                else
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                        GetObject(aryAlls[i]).checked = false;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                function GetObject(param)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        return document.getElementById(param);
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                //]]>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                </script>";
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)}
 
3、新建一个CheckboxAll类,有两个属性
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.ComponentModel;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)namespace YYControls.SmartGridView
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选){
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// CheckboxAll 的摘要说明。
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        [ToolboxItem(false)]
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        public class CheckboxAll
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                private string _checkboxAllID;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// 模板列全选复选框ID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                public string CheckboxAllID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        get { return _checkboxAllID; }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        set { _checkboxAllID = value; }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                private string _checkboxItemID;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// 模板列项复选框ID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                public string CheckboxItemID
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        get { return _checkboxItemID; }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        set { _checkboxItemID = value; }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// ToString()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// </summary>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                /// <returns></returns>
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                public override string ToString()
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                {
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                        return "CheckboxAll";
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)                }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        }
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)}
 
 
 
未完待续>>