自定义分页时,在gridview中保留复选框

时间:2015-09-30 06:05:53

标签: asp.net gridview checkbox

我创建了一个gridview,并在项目模板中添加了一个复选框。此网格包含少量列和DataKey (primary key)。由于性能提升,此网格将根据页码单击在每个页面更改时获取下一组recrod。这样就完成了。

现在,当用户选择第一页中的复选框,然后转到第2页并返回第一页时,用户将看不到用户之前检查的复选框。

当用户将页面移动到页面时,有没有一种方法可以保留复选框?

此复选框用作标志,用于选择以后可以通过网格外部的按钮删除的行。

1 个答案:

答案 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数组或发送这些键并执行比较服务器端,修改文档准备就绪。

希望这有帮助。