一、利用datagrid load方法重新載入並傳遞查詢參數.
load | param | 載入並顯示第一頁的記錄,如果傳遞了'param'參數,它將會覆蓋查詢參數屬性的值。 |
$('#dg').datagrid('load', { "searchKey": name, "searchValue": value });
$('#dg').datagrid('load', { "參數名": 值, "參數名2": 參數值});
當點擊查詢按鈕send時觸發
$(function(){ $("#send").click(function(){ $('#Dear').datagrid('load', { "searchKey":"cnname", "searchValue": $('#cnname).val()}); }) });
服務器端代碼
include 'conn.php'; $page = isset($_POST['page']) ? intval($_POST['page']) : 1; $rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10; $itemid = isset($_POST['searchKey']) ? mysql_real_escape_string($_POST['searchKey']) : ''; $offset = ($page-1)*$rows; $result = array(); $where = "itemid like '$itemid%'"; $rs = mysql_query("select count(*) from item where " . $where); $row = mysql_fetch_row($rs); $result["total"] = $row[0]; $rs = mysql_query("select * from item where " . $where . " limit $offset,$rows"); $items = array(); while($row = mysql_fetch_object($rs)){ array_push($items, $row); } $result["rows"] = $items; echo json_encode($result);
后台代碼分析
1. 首先判斷是否要生成查詢數據,條件是傳遞參數$_POST['searchKey']存在且不為空 。
if(isset($_POST['searchValue']) and $_POST['searchValue']!="")
2. 采用like查詢語言擴大查詢范圍,$map[$_POST['searchKey']]=array('like',array('%'.$_POST['searchValue'].'%'));生成的查詢代碼是:$_POST['searchKey']
like % $_POST['searchValue'] %
3. 生成的查詢記錄要符合datagrid的json數據格式。其中json數據的總記錄用count()生成,需位於where條件之后。
注意:
reload | param | 重載記錄,跟'load'方法一樣但是重載的是當前頁的記錄而非第一頁。 |
$('#Dear').datagrid('reload', { "searchKey": name, "searchValue": value });
二、利用datagrid 內置方法傳入queryParams(查詢參數).
queryParams(查詢參數) | object(對象) | 當請求遠程數據時,發送的額外參數。 |
var query={keywords:'your keywords',id:'your id'}; //把查詢條件拼接成JSON $("#test").datagrid('options').queryParams=query; //把查詢條件賦值給datagrid內部變量
$("#test").datagrid('reload'); //重新加載
或者
var postdata = new Array(); postdata[1] = { param1: "cnname", keywords1: "lanse" }; postdata[2] = { param2: "mobile", keywords2: "18626216619" }; $('#Dear').datagrid('options').queryParams = { "queryParam" : $.toJSON(postdata); //把數組轉換成json字符串 }; //$('#Dear').datagrid('options').url = url; 如果url也沒變可以不用再設置。關鍵是reload這個方法執行重載 $("#Dear").datagrid('reload');
拓展方法
去json官方下載 json類 就是一個json.js的javascript文件 才能使用這2個函數
https://github.com/douglascrockford/JSON-js