jqgrid无法对数据类型local进行排序

时间:2013-03-11 09:06:50

标签: sorting jqgrid

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

我使用数据类型:“local”。

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

我该如何解决这个问题?

这是我的代码:

<!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>

1 个答案:

答案 0 :(得分:0)

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