easyui datagrid查詢條件


一、利用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');
 

toJONString和toJSON這兩個方法是拓展方法

去json官方下載 json類   就是一個json.js的javascript文件  才能使用這2個函數
https://github.com/douglascrockford/JSON-js
 
        
 
        

  

 
        



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM