最近在使用JqGrid 的時候 有一個問題部是很明白
在表單第一次加載的時候要求只顯示表頭。不顯示數據,所以我在第一次加載的時候沒有給url;
//加載頁面時,同時加載表頭
$(document).ready(function() {
pageSetUp();
jQuery("#jqgrid").jqGrid({
url : ' ',
datatype : "json",
height : 'auto',
colNames : [ 'id', '姓名', '年齡', '性別', '部門', '職位', '備注','密碼','薪水'],
colModel : [
{name : 'id',index : 'id',hidden : true },
{name : 'name',index : 'name',editable : true},
{name : 'age',index : 'age',editable : true},
{name : 'gender',index : 'gender',align : "right",editable : true},
{name : 'dept',index : 'dept',align : "right",editable : true},
{name : 'position',index : 'position',align : "right",editable : true},
{name : 'remark',index : 'remark',sortable : false,editable : true},
{name : 'possword',index:'possword',editable :true, hidden : true},
{name : 'seraly',index:'seraly',editable :true, hidden : true},
],
rowNum : 10,
pager : '#pjqgrid',
sortname : 'id',
toolbarfilter : true,
viewrecords : true,
sortorder : "asc",
jsonReader: {
root: "rows", // Json數據
total: "total", // 總頁數
page: "page", // 當前頁
records: "records",// 總記錄數
repeatitems: false
},
editurl : "${TINY_CONTEXT_PATH}/ajax/dummy.pagelet",
caption : "Zto",
multiselect : true,
autowidth : true,
});
然後在頁面上點擊查詢所有數據時,要求把所有數據讀取出來 。 所以我使用了 重新加載 .trigger('reloadGrid') 的方法。
jQuery("#jqgrid").jqGrid('setGridParam',{
url : "list.do",
datatype : 'json',
//發送數據
postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
"seraly":seraly,"position":position,"dept":dept,"remark":remark},
page : 1
}).trigger('reloadGrid');//重新載入
})
可是網頁報錯
Uncaught TypeError: Illegal invocation
糾結了半天後,發現要在上面加上一段
var name=$("#name").val();
var age=$("#age").val();
var gender=$("#gender").val();
var posswrod=$("#posswrod").val();
var seraly=$("#seraly").val();
var position=$("#position").val();
var dept=$("#dept").val();
var remark=$("#remark").val();
數據就能正常顯示了
全部代碼
$(function(){
$("#test").click(function(){
//獲取內容
var name=$("#name").val();
var age=$("#age").val();
var gender=$("#gender").val();
var posswrod=$("#posswrod").val();
var seraly=$("#seraly").val();
var position=$("#position").val();
var dept=$("#dept").val();
var remark=$("#remark").val();
jQuery("#jqgrid").jqGrid('setGridParam',{
url : "list.do",
datatype : 'json',
//發送數據
postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
"seraly":seraly,"position":position,"dept":dept,"remark":remark},
page : 1
}).trigger('reloadGrid');//重新載入
})
});
最後提一個問題就是:為什麼要在點擊後,獲取
var name=$("#name").val(); 這樣的一個值。
為什麼不加上就會報錯了?
肯定要加變量的申明啊,name,age,gender。。等等你不申明那不是變量不存在,你直接使用當然報錯 了。除非你window作用域下也存在這些變量的申明
postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
"seraly":seraly,"position":position,"dept":dept,"remark":remark},