使用者在表單輸入查詢條件,送出後將結果載入 DataGrid。
// 1. 表單提交事件
$('#searchForm').submit(function() {
// 2. 取得表單序列化參數
var params = $(this).serializeObject(); // 需引用 jquery.serializeObject 插件或自行實作
// 3. 更新 DataGrid queryParams
$('#tt').datagrid('options').queryParams = params;
// 4. 重新載入第一頁
$('#tt').datagrid('load');
return false; // 阻止預設提交
});
// 輔助:表單序列化為物件
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) o[this.name] = [o[this.name]];
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
queryParams 物件會隨每次 load/reload 送至伺服器(URL 參數或 POST Body)。page、rows)由 DataGrid 自動附加,無需手動處理。serializeObject 取得 {name: "張三", dept: "IT"}datagrid('options').queryParams = paramsdatagrid('load') 發送請求 /showUser.action?page=1&rows=10&name=張三&dept=IT{total: 5, rows: [...]}$('#resetBtn').click(function() {
$('#searchForm').form('clear');
$('#tt').datagrid('options').queryParams = {};
$('#tt').datagrid('load');
});