JqGrid列表页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JqGrid列表页相关的知识,希望对你有一定的参考价值。

这个当我点击单选按钮时 咱么让黄颜色的样式也跟着过来啊,像下面这样

然后还有个问题,就是当我双击某行时,虽然单选按钮选中了,但是我要跳到下页修改这条数据时,却取不到数据。而我直接选中单选按钮过去修改时,却能取到数据??

参考技术A   列表页:
  grid中对列表cell属性格式化设置主要通过colmodel中formatter、formatoptions来设置
  基本用法:
  js 代码
  jquery ("#jqgrid_id").jqgrid(
  ...
  colmodel: [
  ...
  name:'price', index:'price', formatter:'integer', formatoptions:thousandsseparator: ',',
  ...
  ]
  ...
  );
  formatter主要是设置格式化类型(integer、email等以及函数来支持自定义类型),formatoptions用来设置对应formatter的参数,jqgrid中预定义了常见的格式及其options:
  integer
  thousandsseparator: //千分位分隔符,
  defaulvalue
  number
  decimalseparator,
//小数分隔符,如"."
  thousandsseparator, //千分位分隔符,如","
  decimalplaces, //小数保留位数
  defaulvalue
  currency
  decimalseparator, //小数分隔符,如"."
  thousandsseparator, //千分位分隔符,如","
  decimalplaces, //小数保留位数
  defaulvalue,
  prefix //前缀,如加上"$"
  suffix//后缀
  date
  srcformat, //source的本来格式
  newformat //新格式
  email
  没有参数,会在该cell是email加上: mailto:name@domain.com
  showlink
  baselinkurl,
//在当前cell中加入link的url,如"jq/query.action"
  showaction, //在baselinkurl后加入&action=actionname
  addparam, //在baselinkurl后加入额外的参数,如"&name=aaaa"
  target,
  idname //默认会在baselinkurl后加入,如".action?id=1"。改如果设置idname="name",那么".action?name=1"。其中取值为当前rowid
  checkbox
  disabled //true/false 默认为true此时的checkbox不能编辑,如当前cell的值是1、0会将1选中
  select
  设置下拉框,没有参数,需要和colmodel里的editoptions配合使用
  下面是一个使用的例子:
  java代码
  var datas = [
  "id":1, "name":"name1", "price":123.1, "email":"abc@163.com", "amount":1123423, "gender":"1", "type":"0",
  "id":2, "name":"name2", "price":1452.2, "email":"abc@163.com", "amount":12212321, "gender":"1", "type":"1",
  "id":3, "name":"name3", "price":125454, "email":"abc@163.com", "amount":2345234, "gender":"0", "type":"0",
  "id":4, "name":"name4", "price":23232.4, "email":"abc@163.com", "amount":2345234, "gender":"1", "type":"2"]
  
  js 代码
  colmodel:[
  name:'id', index:'id', formatter: customfmatter,
  name:'name', index:'name', formatter: "showlink", formatoptions:baselinkurl:"save.action",idname: "id", addparam:"&name=123",
  name:'price', index:'price', formatter: "currency", formatoptions: thousandsseparator:",",decimalseparator:".", prefix:"$",
  name:'email', index:'email', formatter: "email",
  name:'amount', index:'amount', formatter: "number", formatoptions: thousandsseparator:",", defaulvalue:"",decimalplaces:3,
  name:'gender', index:'gender', formatter: "checkbox",formatoptions:disabled:false,
  name:'type', index:'type', formatter: "select", editoptions:value:"0:无效;1:正常;2:未知"
  ],
  其中customfmatter声明如下
  js 代码
  function customfmatter(cellvalue, options, rowobject)
  console.log(cellvalue);
  console.log(options);
  console.log(rowobject);
  return "["+cellvalue+"]";
参考技术B 你需要监听这个radio的事件手动 change去选中那条记录..自己嵌入的radiobutton选中不会影响jqGrid的选中事件................................
你后面说的跳到下页修改 不知道什么意思.你是怎么传值的本回答被提问者采纳

jqGrid翻页获取选中的值

 

1、实现效果: 点击确定所选按钮之后,获取翻页选中的题库表号

 技术分享

2、关键代码

 onSelectAll: function (aRowids, status) {

},

 onSelectRow: function (aRowids, status) {

 jQuery("#questionindex_table").jqGrid({
            url: ‘2safety/exam/questionfile/ashx/list.ashx?act=list‘,
            datatype: "json",
            colNames: [‘ID‘, ‘题库表号‘, ‘文件名称‘, ‘发文号‘, ‘发文部门‘, ‘规章编号‘, ‘发文年月‘],
            autoWidth: true,
            rowNum: rowNum,
            rowList: rowList,
            rownumbers: true,
            pager: ‘#pager‘,
            altRows: true,
            shrinkToFit: false,
            viewrecords: true,
            multiselect: true,
            width: 1030,
            height: 350,
            jsonReader: {
                page: "page",
                total: "total",
                repeatitems: false,
                id: "ID"
            }, 
            onSelectAll: function (aRowids, status) {
                for (var index = 0; index < aRowids.length; index++) {
                    var str = $("#questionindex_table").jqGrid(‘getRowData‘, aRowids[index]).QUESTIONFLAG;
                    var str1 = $("#questionindex_table").jqGrid(‘getRowData‘, aRowids[index]);
                    if (status)
                    {
                        if (arr.toString().indexOf(str) <0) {   
                            arr.push(str);
                            arr1.push({ id: str1.ID, QUESTIONFLAG: str1.QUESTIONFLAG })
                        }    
                    }
                    else
                    {
                        for (var i = 0; i < arr.length; i++) {
                            if (arr[i] == str) {
                                arr.splice(i, 1);
                                arr1.splice(i, 1);
                            }
                        }
                    }                    
                }
            },
            onSelectRow: function (aRowids, status) {
                var str = $("#questionindex_table").jqGrid(‘getRowData‘, aRowids).QUESTIONFLAG;
                var str1 = $("#questionindex_table").jqGrid(‘getRowData‘, aRowids);
                if (status) {
                    arr.push(str);
                    arr1.push({ id: str1.ID, QUESTIONFLAG: str1.QUESTIONFLAG })
                }
                else
                {
                    for (var i = 0; i < arr.length; i++)
                    {
                        if(arr[i]==str)
                        {
                            arr.splice(i,1);
                            arr1.splice(i, 1);
                        }
                    }               
                }
             
            },
            colModel: [
                 { name: ‘ID‘, index: ‘ID‘, hidden: true, frozen: true },
                  { name: ‘QUESTIONFLAG‘, index: ‘QUESTIONFLAG‘, width: 80, frozen: true },
                 {
                     name: ‘NAME‘, index: ‘NAME‘, width: 250, frozen: true,
                     formatter: function (value, type, row) {
                         switch (row.ISACTIVE + ‘‘) {
                             case ‘0‘: str = "<span style=\"color:#999999;text-decoration:line-through;\">" + row.NAME + "</span>"; break;
                             case ‘1‘: str = row.NAME; break;
                             default: str = row.NAME; break;
                         }
                         return str;
                     }
                 },
                 { name: ‘PUBLISHNO‘, index: ‘PUBLISHNO‘, width: 150, frozen: true },

                 { name: ‘JGNAME‘, index: ‘JGNAME‘, width: 120, frozen: true },
                 { name: ‘REGULATIONS‘, index: ‘REGULATIONS‘, width: 110 },
                 {
                     name: ‘PUBLISHTIME‘, index: ‘PUBLISHTIME‘, width: 80, align: ‘center‘, formatter: function (cellvalue, options, rowObject) {
                         return parent.setAddTime(cellvalue, ‘yyyy-MM-dd‘);
                     }
                 }
            ]
        });

遗留问题:返回上一页之后,之前选中的标识消失

3、知识点

js数组操作:判断数组中是否存在某个字符串 

var arr=[46013,25210,16414];

var str="16414";

if (arr.toString().indexOf(str) <0)

{alert("不存在") }

else

{alert("存在")}

js数组操作:删除数组中某个字符串 

var arr=[46013,25210,16414];

arr.splice(0, 1);

alert(arr);//[25210,16414];

4、参考网址:http://my.oschina.net/luckyi/blog/316251

以上是关于JqGrid列表页的主要内容,如果未能解决你的问题,请参考以下文章

14.PTD与的基址

为什么要有虚拟内存

夺命雷公狗---DEDECMS----19dedecms栏目列表页的完成

av68676164(p51-p53)虚拟内存管理

av68676164(p51-p53)虚拟内存管理

JqGrid相关操作备忘 方法列表