JqGrid列表页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JqGrid列表页相关的知识,希望对你有一定的参考价值。
这个当我点击单选按钮时 咱么让黄颜色的样式也跟着过来啊,像下面这样
然后还有个问题,就是当我双击某行时,虽然单选按钮选中了,但是我要跳到下页修改这条数据时,却取不到数据。而我直接选中单选按钮过去修改时,却能取到数据??
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 //新格式
没有参数,会在该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列表页的主要内容,如果未能解决你的问题,请参考以下文章