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

简介: 官网给的例子里单页全选得不到ID,一个一个选能得到,所以我要添加JS方法把rowid存到一个hidden里以便让后台也能收到,使全选时能存储ID。 选中状态的方法为.setSelection(rowid),因为本来这个页就被选中了,所以这个方法就不用写了。

官网给的例子里单页全选得不到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)'就可以触发了。

目录
相关文章
|
Web App开发 JavaScript .NET
怎样用JS获取ASP.NET服务器控件的客户端ID
虽然简单,不过曾经困扰多时,还是记录一下吧。   来源:http://mou518.blog.163.com/blog/static/1756052222010111434428828/   因为经常服务器控件在运行编译后ID是变化了的,如 运行编译后的结果可能是   如果直接用document .
771 0
|
.NET 开发框架 JavaScript
JQgrid for asp.net 不完全手记
JQgrid for asp.net 网上资料较少,自己总结了些不全,能用到的可以借鉴下   控件: @ Register Assembly="Trirand.Web" Namespace="Trirand.
1025 0
|
JavaScript .NET 开发框架
jqgrid for asp.net 遍历所有列rowObject时不用输入编号
先看列 这里绑定了入库单号列,编辑的js方法为doShowInStoreInfo //显示入库单信息 function doSh...
926 0
|
SQL 数据库 数据库管理
ASP.NET中对SQLITE数据库进行插入操作后返回自增的ID
啥也不说了,刚刚研究出来滴~~~贴码:         /// 插入        /// 返回刚刚插入的ID        ///         ///         ///         ///         public bool Insert(string groupname, ...
1024 0
|
14天前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
21 7