jqGrid在排序日期时间列时出错



当我将[ 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列。

当我尝试排序这个列(在ie8或ie9)它返回一个漂亮的短消息(未定义),从网格,而不是一个javascript错误。这就好像网格在排序时无法获得某些元素/属性。

尝试使用完整的日期格式信息:

 {
  name:'Datetime', 
  index:'Datetime', 
  width: '', 
  formatter:'date', 
  formatoptions: {newformat:'m/d/Y'}, 
  datefmt: 'd-M-Y', 
  sorttype: 'date'
 }

还有一个简单的错误:在colModel定义的末尾,[前面有逗号。组合},]语法错误

演示包括你发布的代码,我发现至少在IE9中没有错误。

你可以另外验证一下,在你下载的jquery.jqGrid.min.js版本中包含了以下模块:grid.base.js, grid.common.js, grid.tbltogrid.js。要做到这一点,你可以在文本编辑器中打开jquery.jqGrid.min.js,并在文件开头的"Modules:"后面的注释中搜索grid.base.js, grid.common.js, grid.tbltogrid.js.

相关内容

  • 没有找到相关文章

最新更新