1. 程式人生 > >easyUI 新增排序到datagrid

easyUI 新增排序到datagrid

@author YHC

這個示例展示如何排序datagrid通過點選列表頭.


在datagrid的所有columns 可以通過點選列表頭排序,你可以定義哪行可以排序,預設的列是不能排序的除非你設定sortable 屬性為true

建立an DataGrid

<table id="tt" class="easyui-datagrid" style="width:600px;height:250px"  
        url="datagrid8_getdata.php"  
        title="Load Data" iconCls="icon-save"  
        rownumbers="true" pagination="true">  
    <thead>  
        <tr>  
            <th field="itemid" width="80" sortable="true">Item ID</th>  
            <th field="productid" width="80" sortable="true">Product ID</th>  
            <th field="listprice" width="80" align="right" sortable="true">List Price</th>  
            <th field="unitcost" width="80" align="right" sortable="true">Unit Cost</th>  
            <th field="attr1" width="150">Attribute</th>  
            <th field="status" width="60" align="center">Stauts</th>  
        </tr>  
    </thead>  
</table>  

我們定義一些可排序的列包含itemid,productid,listprice,unitcost等等'attr1' 列和 'status'列不能排序.

當排序DataGrid 將傳送2個引數到遠端伺服器:

  • sort: 排序列欄位名.
  • order: 排序方式, 可以是 'asc' 或者 'desc', 預設值是 'asc'.

伺服器端程式碼

$page = isset($_POST['page']) ? intval($_POST['page']) : 1;  
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;  
$sort = isset($_POST['sort']) ? strval($_POST['sort']) : 'itemid';  
$order = isset($_POST['order']) ? strval($_POST['order']) : 'asc';  
$offset = ($page-1)*$rows;  
  
$result = array();  
  
include 'conn.php';  
  
$rs = mysql_query("select count(*) from item");  
$row = mysql_fetch_row($rs);  
$result["total"] = $row[0];  
  
$rs = mysql_query("select * from item order by $sort $order limit $offset,$rows");  
  
$items = array();  
while($row = mysql_fetch_object($rs)){  
    array_push($items, $row);  
}  
$result["rows"] = $items;  
  
echo json_encode($result);  

下載EasyUI示例程式碼: