我创建了一个gridview,并在项目模板中添加了一个复选框。此网格包含少量列和DataKey (primary key)
。由于性能提升,此网格将根据页码单击在每个页面更改时获取下一组recrod。这样就完成了。
现在,当用户选择第一页中的复选框,然后转到第2页并返回第一页时,用户将看不到用户之前检查的复选框。
当用户将页面移动到页面时,有没有一种方法可以保留复选框?
此复选框用作标志,用于选择以后可以通过网格外部的按钮删除的行。
答案 0 :(得分:0)
由于每次选择分页时都会收到一个新的设置,我建议采用以下方法:
通过javascript创建一个array[]
对象,每当选中一个复选框时,该对象将添加以列出datakey,如果取消选中该复选框,则将其删除。像这样:
var selectedDataKeys = [];
$('.checkboxclass').on('change', function() {
// Considering you assign the data key as id for the checkbox otherwise implement a way to retrieve the id.
var dataKey = $(this).prop('id');
// Determine if the dataKey is in the selected data keys array
var isContained = (selectedDataKeys.indexOf(dataKey) > -1 );
if($(this).is(':checked')) {
// If is contained is false - add to the array
if (!isContained)
selectedDataKeys.push(dataKey);
} else {
// If is contained is true - remove to the array
if (isContained){
selectedDataKeys = $.grep(selectedDataKeys, function(value) {
return value != dataKey;
});
}
}
});
从这一点开始,客户端用户将拥有所选项目的活动列表,现在您可以使用该列表来操作网格显示页面。通过比较网格显示中的所有项目与selectedDataKeys数组或发送这些键并执行比较服务器端,修改文档准备就绪。
希望这有帮助。