Sorting jqGrid:按索引排序
我很难让列按“name”值以外的索引进行排序。在本例中,我尝试按周顺序而不是字母数字顺序对聚合类型列(值是一周中的天数)进行排序。为此,我添加了一个索引列(“聚合类型索引”),该列的周天数为整数。但是,使用此配置,它无法按索引或名称对该列进行排序。有人能指出我的错误吗 我发布了页面上所有的js和css,因为我还有另外两个问题,如果你注意到这个问题,我会继续寻找。我希望能够启用列重新排序,并能够调整网格大小(都显示在新的in 3.6选项卡下)。两种选择都不起作用Sorting jqGrid:按索引排序,sorting,jqgrid,Sorting,Jqgrid,我很难让列按“name”值以外的索引进行排序。在本例中,我尝试按周顺序而不是字母数字顺序对聚合类型列(值是一周中的天数)进行排序。为此,我添加了一个索引列(“聚合类型索引”),该列的周天数为整数。但是,使用此配置,它无法按索引或名称对该列进行排序。有人能指出我的错误吗 我发布了页面上所有的js和css,因为我还有另外两个问题,如果你注意到这个问题,我会继续寻找。我希望能够启用列重新排序,并能够调整网格大小(都显示在新的in 3.6选项卡下)。两种选择都不起作用 <link rel="sty
<link rel="stylesheet" type="text/css" href="/static/latest_ui/themes/base/jquery.ui.all.css"/>
<link rel="stylesheet" type="text/css" media="print" href="/static/css/print.css"/>
<script src="/static/js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="/static/latest_ui/ui/jquery.ui.core.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.widget.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.position.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.button.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.menu.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.menubar.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.tabs.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.datepicker.js"></script>
<script src="/static/js/custom.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="/static/css/custom_style.css" />
<link rel="stylesheet" type="text/css" media="all" href="/static/css/custom_colors.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/static/css/ui.jqgrid.css" />
<body>
<table id="grid_reports"></table>
<div id='pager'></div>
</body>
<script src="/static/latest_ui/ui/jquery.ui.resizable.js"></script>
<script src="/static/latest_ui/ui/jquery.ui.sortable.js"></script>
<script src="/static/js/grid.locale-en.js" type="text/javascript"></script>
<script src="/static/js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="/static/js/jqGrid_src/grid.jqueryui.js"></script>
<script>
$(function() {
jQuery("#grid_reports").jqGrid({
sortable: true,
datatype: "local",
height: 500,
width: 300,
colNames:['Series', 'Agg Type', 'Days'],
colModel:[{'index': 'By series', 'align': 'left', 'sorttype': 'text', 'name': 'By series', 'width': 65}, {'index': 'Aggregation type-index', 'align': 'left', 'sorttype': 'int', 'name': 'Aggregation type', 'width': 75}, {'index': 'Days since event', 'align': 'center', 'sorttype': 'text', 'name': 'Days since event', 'width': 50}],
rowNum:50,
pager: '#pager',
sortname: 'Aggregation type',
sortorder: 'desc',
altRows: true,
rowList:[20,50,100,500,10000],
viewrecords: true,
gridview: true,
caption: "Report for 6/19/12"
});
jQuery("#grid_reports").navGrid("#pager",{edit:false,add:false,del:false});
jQuery("#grid_reports").jqGrid('gridResize',{minWidth:60,maxWidth:2500,minHeight:80, maxHeight:2500});
var mydata = [{'Days since event': 132, 'Aggregation type': 'Date=Fri', 'By series': 'mean', 'Aggregation type-index': 5}, {'DIM at event': 178, 'Aggregation type': 'Date=Thu', 'By series': 'mean', 'Aggregation type-index': 4}, {'DIM at event': 172, 'Aggregation type': 'Date=Wed', 'By series': 'mean', 'Aggregation type-index': 3}, {'DIM at event': 146, 'Aggregation type': 'Date=Tue', 'By series': 'mean', 'Aggregation type-index': 2}, {'DIM at event': 132, 'Aggregation type': 'Date=Sat', 'By series': 'mean', 'Aggregation type-index': 6}, {'DIM at event': 162, 'Aggregation type': 'Date=Mon', 'By series': 'mean', 'Aggregation type-index': 1}, {'DIM at event': 139, 'Aggregation type': 'Date=Sun', 'By series': 'mean', 'Aggregation type-index': 0}];
for(var i=0;i<=mydata.length;i++)
jQuery("#grid_reports").jqGrid('addRowData',i+1,mydata[i]);
});
</script>
$(函数(){
jQuery(“网格报告”).jqGrid({
可排序:是的,
数据类型:“本地”,
身高:500,
宽度:300,
colNames:['Series','Agg Type','Days'],
colModel:[{'index':'By series','align':'left','sorttype':'text','name':'By series','width':65},{'index':'Aggregation type index','align':'left','sorttype':'int','name':'Aggregation type','width':75},{'index':'Days after event','align':'center','sorttype':'text','name':'Days after event','width':50},
rowNum:50,
寻呼机:“#寻呼机”,
sortname:“聚合类型”,
排序器:“desc”,
阿尔特罗斯:是的,
行列表:[20,5010050010000],
viewrecords:是的,
gridview:没错,
描述:“2012年6月19日的报告”
});
jQuery(“#grid_reports”).navGrid(#pager“,{edit:false,add:false,del:false});
jqGrid('gridResize',{minWidth:60,maxWidth:2500,minHeight:80,maxHeight:2500});
var mydata=[{'Days after event':132,'聚合类型':'Date=Fri','By series':'mean','Aggregation type index':5},{'DIM at event':178,'聚合类型':'Date=Thu','By series':'mean','Aggregation type index':4},{'DIM at event':172,'聚合类型':'Date Wed','By series':'mean','Aggregation type index':3},{'DIM at event':146,'聚合类型':'Date=Tue','By series':'mean','Aggregation type index':2},{'DIM at event':132,'聚合类型':'Date=Sat','By series','By series','mean','Aggregation type index':6},{'DIM at event':162聚合类型':'Date Mon By series','mean','Aggregation type index':1},{'DIM at event':139,'聚合类型':'Date=Sun','By series':'mean','Aggregation type index':0}];
对于(var i=0;i,代码中存在一些问题:
- 您应该使用没有空格或元字符的
名称
和索引
属性(请参阅)。例如,您可以在“聚合类型”中重命名列名'Aggregation type'
- 只有在远程数据的情况下(在
datatype:“json”
或datatype:“xml”
的情况下),才能对name
和index
属性使用不同的值
- 您不应该使用
addRowData
填充网格。这是我所知道的最慢的方法。更好、更简单的方法是将mydata
的定义移动到代码顶部(在创建网格之前),在数组的每个项目中包括附加属性id
,并使用jqGrid的data:mydata
选项。如果网格将与数据一起创建,则将对数据进行排序,并显示数据的第一页
- 如果需要实现任何自定义排序,可以将列的
sorttype
属性定义为函数,而不是默认的'text'
(请参阅和示例)。例如,函数可以为'Date=Fri'
值返回4,为'Date=Sat'
值返回5。然后,您可以根据需要实施精确的自定义排序
感谢您提供的所有提示,我刚刚开始使用jqGrid,需要了解它的所有功能和细微差别。