-1

我在使用 jqGrid 对数据进行排序时遇到问题。

我使用数据类型:“本地”。

当我重新加载页面时一切都很好,按升序排序。但是,如果我单击标题层进行排序(desc 或 asc)jqGrid 排序 1,10,2,3... 不是 1,2,3,4...10(asc)和 9,8,7... 3,2,10,1(递减)

我该如何解决这个问题?

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My First Grid</title>

<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.10.1.custom.min.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />

<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
    font-size: 75%;
}
</style>

<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="js/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(function(){ 
  $("#list").jqGrid({
    datatype: "local",
    height: 300,
    colNames:['ID','Inv Date','Name', 'Note','Amount','Tax','Total'],
    colModel :[ 
      {name:'id', index:'id',width:20},
      {name:'invdate', index:'invdate', width:55}, 
      {name:'name', index:'name', width:90}, 
      {name:'note', index:'note', width:80, align:'right'}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:150, sortable:true} 
    ],
    sortname: "id",
    multiselect: true,
    caption: "Manipulating Array Data"
});
  var mydata = [
    /**
     * do this with PHP, for sampling usage i just want it generated automatically.
     */
    <?php 
      $data=array();
      for ($i=1; $i <= 10; $i++) { 
        # code...
        $data[]='{id:'.$i.',invdate:"'.$i.'",name:"'.$i.'",note:"'.$i.'",amount:"'.$i.'",tax:"'.$i.'",total:"'.$i.'"}';
      }
      $data=implode(",",$data);
      echo $data;
    ?>
    ];
for(var i=0;i<=mydata.length;i++)
  jQuery("#list").jqGrid('addRowData',i+1,mydata[i]); 
}); 
</script>

</head>
<body>
<!--this is it, jqGrid-->
<table id="list"><tr><td/></tr></table> 
<div id="pager"></div> 
<!--end of jqGrid-->
</body>
</html>
4

1 回答 1

0

如果您希望 jqGrid 将列中的数据排序为整数,则应在相应列的定义中包含sorttype: "integer"属性。colModel

于 2013-03-11T09:53:06.633 回答