GridView中有分页 而每行数据中都有checkbox 当第一页有checked的值为true
点到第二页后在点到第一页
checked的值就还原成fales怎么保存checked的值
使其值不变

解决方案 »

  1.   

    跨页存储
    前台  $(document).ready(function () {
                $.fn.checkMultiPage();}其中hfdel为 HIddenField  
       checkall  全选CHECKBOX的class
       checkone  单个的CHECKBOX的class 
    //*****************************************************************
    //
    // File Name:   CheckBox.cs
    //
    // Description: checkbox多选通用插件
    //
    // Coder:      
    //
    // Date:        
    //
    // History:     
    //
    //*****************************************************************
    (function ($) {
        //一些默认值
        var defaultVar = {
            hiddenID: "hfDel", //默认存储隐藏域的ID
            allCheckBox: ".checkall", //全选checkbox的ID或name或class
            oneCheckBox: ".checkone"//列表下单个checkbox的ID或name或class
        };    //单页面check
        $.fn.checkSinglePage = function (options) {
            if (typeof options != "undefined") {
                if (typeof options.hiddenID != "undefined") {
                    defaultVar.hiddenID = options.hiddenID;
                }
                if (typeof options.allClass != "undefined") {
                    defaultVar.allCheckBox = options.allCheckBox;
                }
                if (typeof options.oneClass != "undefined") {
                    defaultVar.oneCheckBox = options.oneCheckBox;
                }
            }        $(defaultVar.allCheckBox).live("click", function () {
                if ($(this).attr("checked") == "checked") {//如果选中
                    CheckAll();
                } else {
                    UnCheckAll();
                }
                UpdateSinglePageValues();
            });        $(defaultVar.oneCheckBox).each(function () {
                $(this).live("click", function () {
                    CheckOne();
                    UpdateSinglePageValues();
                });
            });        InitialChecked();
        };    //跨页面check
        $.fn.checkMultiPage = function (options) {
            if (typeof options != "undefined") {
                if (typeof options.hiddenID != "undefined") {
                    defaultVar.hiddenID = options.hiddenID;
                }
                if (typeof options.allClass != "undefined") {
                    defaultVar.allCheckBox = options.allCheckBox;
                }
                if (typeof options.oneClass != "undefined") {
                    defaultVar.oneCheckBox = options.oneCheckBox;
                }
            }        $(defaultVar.allCheckBox).live("click", function () {
                if ($(this).attr("checked") == "checked") {//如果选中
                    CheckAll();
                } else {
                    UnCheckAll();
                }
                UpdateMultiPageValues();
            });        $(defaultVar.oneCheckBox).each(function () {
                $(this).live("click", function () {
                    CheckOne();
                    UpdateMultiPageValues();
                });
            });        InitialChecked();
        };    //将隐藏域中存放的ID选择到checkbox上
        function InitialChecked() {
            var arr = $("#" + defaultVar.hiddenID).val().split(",");
            $(defaultVar.oneCheckBox).each(function () {
                var i = 0;
                for (i = 0; i < arr.length; i++) {
                    if (arr[i] == $(this).val()) {
                        $(this).attr("checked", "checked");
                    }
                }
            });
            var checkedNum = $(".checkone:checked").length;
            var allNum = $(".checkone").length;
            if (allNum != 0 && checkedNum == allNum) {
                $(defaultVar.allCheckBox).attr("checked", "checked");
            }
        }    function UnCheckAll() {
            //取消全选
            $(defaultVar.oneCheckBox).each(function () {
                $(this).removeAttr("checked");
            });
        }    function CheckAll() {
            //全选
            $(defaultVar.oneCheckBox).each(function () {
                $(this).attr("checked", "checked");
            });
        }    function CheckOne() {
            //单击单条消息时检验是否全选
            var $length = $(defaultVar.oneCheckBox).length;
            var $checklenght = $(defaultVar.oneCheckBox + ":checked").length;
            if ($length == $checklenght) {
                $(defaultVar.allCheckBox).attr("checked", "checked");
            } else {
                $(defaultVar.allCheckBox).removeAttr("checked");
            }
        }    //单页选中更新隐藏域中的值
        function UpdateSinglePageValues() {
            var checkOneLenght = $(defaultVar.oneCheckBox + ":checked").length;
            var conVal = "";
            $(defaultVar.oneCheckBox + ":checked").each(function () {
                conVal += $(this).val() + ",";
            });
            if (conVal.length > 0) {
                conVal = conVal.substring(0, conVal.length - 1);
            }
            alert(conVal);
            $("#" + defaultVar.hiddenID).val(conVal);
            alert($("#" + defaultVar.hiddenID).val());
        }    //更新隐藏域中的值
        function UpdateMultiPageValues() {
            var $checkOneLen = $(defaultVar.oneCheckBox + ":checked").length;
            var $conVal = "";
            $(defaultVar.oneCheckBox + ":checked").each(function (i) {
                $conVal += $(this).val() + ",";
            });
            if ($conVal.length > 0) {
                $conVal = $conVal.substring(0, $conVal.length - 1);
            }
            $conVal = $conVal + "," + $("#" + defaultVar.hiddenID).val();        var allArray = $conVal.split(",");
            $(defaultVar.oneCheckBox).each(function () {
                if (typeof $(this).attr("checked") != "undefined" && $(this).attr("checked") == "checked") {
                    var i = 0;
                    var find = false;
                    for (i = 0; i < allArray.length; i++) {
                        if (allArray[i] == $(this).val()) {
                            find = true;
                        }
                    }
                    if (find == false) {
                        allArray.push($(this).val());
                    }
                }
                else {
                    var i = 0;
                    for (i = 0; i < allArray.length; i++) {
                        if (allArray[i] == $(this).val()) {
                            allArray[i] = "";
                        }
                    }
                }
            });        var i = 0;
            var result = "";
            for (i = 0; i < allArray.length; i++) {
                if (allArray[i] != "") {
                    result += allArray[i] + ",";
                }
            }
            if (result.length > 0) {
                result = result.substring(0, result.length - 1);
            }        $("#" + defaultVar.hiddenID).val(result);
        }
    })(jQuery);
      

  2.   

    checkchanged事件,修改数据源,从新绑定。
      

  3.   

    js不太懂,jquery到是会多点,还有别的方法吗,给个例子啊,不要老是说理论性的