zoukankan      html  css  js  c++  java
  • 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)'就可以触发了。

  • 相关阅读:
    freemarker报错之五
    freemarker处理空值
    freemarker报错之四
    freemarker之include指令
    freemarker之list
    freemarker报错之三
    freemarker中的if...elseif...else语句
    freemarker获取封装类中对象的属性
    单块读和多块读操作汇总
    freemarker报错之二
  • 原文地址:https://www.cnblogs.com/shiworkyue/p/3845334.html
Copyright © 2011-2022 走看看