当我将[ sorttype: "datetime", datefmt: "d/m/Y H:i:s" ]
设置为jQuery网格时,在排序日期时间列时出现错误消息。
消息是:undefined
。但是,这只发生在IE 8/9中,在Firefox上运行正常。
我有一些动态创建的表。创建的一个表是这样的:
<table id="files_1">
<thead>
<tr>
<th>Sequencial</th>
<th>File</th>
<th>Datetime</th>
<th>Size</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>File 1</td>
<td>07/04/2011 09:28:00</td>
<td>100</td>
</tr>
<tr>
<td>2</td>
<td>File 2</td>
<td>07/03/2011 09:28:00</td>
<td>101</td>
</tr>
</tbody>
</table>
之后会出现这样的javascript函数:
$(document).ready(function() {
tableToGrid("#files_1", {
height: 'auto',
width: '100%',
rowNum: '2',
rowTotal: '2',
hoverrows: true,
colNames: ['', 'File', 'Datetime', 'Size (bytes)'],
colModel: [
{name:'Sequencial', index:'Sequencial', width: '30', stype:'text', align: 'center', sorttype:'number'},
{name:'File', index:'File', width: '370', stype:'text', align: 'left'},
{name:'Datetime', index:'Datetime', width: '', stype:'text', align: 'center', datefmt: "d/m/Y H:i:s", sorttype: 'date'},
{name:'Size', index:'Size', width: '', stype:'text', align: 'center', sorttype:'number'},
]
});
});
网格已创建且工作正常。
它对除datetime列以外的所有列进行排序。
当我尝试对此列进行排序时(在IE 8或IE 9中),它会从网格中返回一条漂亮的短消息(未定义),而不是javascript错误。就好像网格在排序时无法获得某些元素/属性。
答案 0 :(得分:2)
尝试使用完整的日期格式信息:
{
name:'Datetime',
index:'Datetime',
width: '',
formatter:'date',
formatoptions: {newformat:'m/d/Y'},
datefmt: 'd-M-Y',
sorttype: 'date'
}
答案 1 :(得分:1)
在colModel
定义结束时还有一个更简单的错误:逗号之前。组合},]
是语法错误。
The demo包含您发布的代码,我至少在IE9中看不到任何错误。
您还可以验证在您下载的jquery.jqGrid.min.js版本中包含以下模块:grid.base.js,grid.common.js,grid.tbltogrid.js。为此,您只需在文本编辑器中打开jquery.jqGrid.min.js,然后在grid.base.js,grid.common.js,grid的单词“Modules:”之后搜索文件开头的注释。 .tbltogrid.js。