-1

jqGrid でのデータの並べ替えに問題があります。

私は datatype: "local" を使用します。

ページをリロードすると、すべて問題なく昇順でソートされます。ただし、ヘッダー レイヤーをクリックしてソート (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 に答える