读书人

GridView分页中如何保存checkbox

发布时间: 2012-09-29 10:30:01 作者: rapoo

GridView分页中怎么保存checkbox
GridView中有分页 而每行数据中都有checkbox

当第一页有checked的值为true
点到第二页后在点到第一页
checked的值就还原成fales

怎么保存checked的值
使其值不变


[解决办法]
跨页存储


前台 $(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);

读书人网 >C#

热点推荐