@北京-没想好 直接QQ通话

jqgrid for asp.net 单页全选记录ID

官网给的例子里单页全选得不到ID,一个一个选能得到,所以我要添加JS方法rowid存到一个hidden里以便让后台也能收到,使全选时能存储ID。

选中状态的方法为.setSelection(rowid),因为本来这个页就被选中了,所以这个方法就不用写了。

第二步我要得到本页的所有rowid,因为我的rowid绑定的是数据ID,所以不是按顺序走的(可能跳),jqgrid for asp.net在前台也没有提供方法(反正我没找到)每次加载行,把rowid存到控件里就可以了,所以直接用了编辑连接地址的方法

 //显示资产信息
         function doShowAssetInfo(cellValue, options, rowObject) {
             var strURL = "./_view.aspx?";
             var imageHtml = "<a  target='_blank' style='color:Blue; text-decoration:nonde;' href='" + strURL + "'>" + cellValue + "</a>";
             document.getElementById("_hidListRows").value += document.getElementById("_hidListRows").value == "" ? rowObject[getColumnindex("Id")] : "," + rowObject[getColumnindex("Id")];
             return imageHtml;
         }

存在了_hidListRows里,以‘,’隔开的。

第三部就是存储ID,

         function selectRowAll(e) {//接收控件
             var grid = jQuery("#<%= Jqgrid1.ClientID %>");//得到jqgrid控件
             var ListRows = document.getElementById("_hidListRows").value;//获得所有rowid
             var rows = [];//集合
             var selection = false;//状态
             if (e.checked) {//判断状态
                 selection = true;//更改状态
             }
             rows = ListRows.toString().split(',');//重置集合
             for (var r in rows) {//循环
                 // grid.setSelection(rows[r]);//无用
                 rowSelected(rows[r], selection);//存储ID的方法
             }
 
         }
需要个集合var selectedRows = [];
        function rowSelected(rowID, isSelected) {//存储ID的方法
             selectedRows[rowID] = isSelected;//号对应状态
             updateSelectedRowsHidden();//翻页记录ID
         }
         //翻页记录ID
         function updateSelectedRowsHidden() {
             var hiddenrowField = $("#<%= SelectedRowsrow.ClientID %>");//得到控件
             var selectedrowValues = "";
             for (var row in selectedRows) {
                 if (selectedRows[row])//判断状态
                    selectedrowValues += selectedrowValues == "" ? row : "," + row;
             }
             hiddenrowField.val(selectedrowValues);//存到控件SelectedRowsrow里
         }

  因为rowSelected方法在选择行时用,所以就直接引用了这个方法,现在SelectedRowsrow控件里就是全选的ID了,var selectedRows = [];集合里也有选择的ID,循环时要判断状态。

第四步是触发selectRowAll,这里只能改js包了,jquery.jqGrid.min.js里"<input role='checkbox' id='cb_"+this.p.id+"'...是生成表头的checkbox控件,所以加了个onclick='selectRowAll(this)'就可以触发了。

posted on 2012-11-07 16:26  走路要用腿  阅读(182)  评论(0编辑  收藏  举报

导航

QQ:@北京-没想好