我正在嘗試兩種版本的代碼,一種使用本地數據類型,另一種使用json數據類型。我所要做的只是將數據打印到控制檯日誌中,使用此行console.log(texts)
。但是,只有當數據類型是本地時,纔會打印到控制檯。以下是兩種版本的代碼,本地數據類型和json數據類型。這兩個版本都是相似的,只更改了dataTypes。我到底調用someFunc
打印數據當數據類型爲json時,jqGrid不提取行數據,但在數據類型爲本地時工作正常。
本地數據類型
$(document).ready(function() {
var mydata = [
{id: "1", name: "someone"}
]
someFunc = function(columnName) {
var texts = jQuery("#myGrid").jqGrid('getCol',columnName);
console.log(texts); //is printing only when datatype is local
};
jQuery("#myGrid").jqGrid(
{
autoencode:true,
mtype: 'GET',
datatype : 'local',
data: mydata,
colModel : [
{name: 'name', index: 'Name'}
]
});
jQuery("#mygrid").jqGrid('navGrid', '#pager', {
edit : false,
add : false,
del : false,
search : true
}, {}, {}, {}, {
sopt : [ 'eq', 'ne', 'lt', 'gt', 'cn', 'bw', 'ew' ],
closeOnEscape : true,
multipleSearch : true,
closeAfterSearch : true
});
someFunc('name');
});
JSON數據類型
$(document).ready(function() {
someFunc = function(columnName) {
var texts = jQuery("#myGrid").jqGrid('getCol',columnName);
console.log(texts); //is printing only when datatype is local
};
jQuery("#myGrid").jqGrid(
{
url : 'someUrlToGetData',
autoencode:true,
mtype: 'GET',
datatype: 'json',
colModel : [
{name: 'name', index: 'Name'}
]
});
jQuery("#mygrid").jqGrid('navGrid', '#pager', {
edit : false,
add : false,
del : false,
search : true
}, {}, {}, {}, {
sopt : [ 'eq', 'ne', 'lt', 'gt', 'cn', 'bw', 'ew' ],
closeOnEscape : true,
multipleSearch : true,
closeAfterSearch : true
});
someFunc('name');
});
好吧,這是有效的,是有道理的。謝謝! – birdy
以下你的答案http://stackoverflow.com/a/4102155我想在過濾器欄中創建一個下拉列表。不過,我通過網址獲取我的數據。下拉是通過獲取一列的唯一記錄,然後將它們作爲選項存儲在下拉列表中。但是,如果我從URL獲取數據,並且只在第一次獲得前20條記錄(當用戶轉到下一頁時將獲取其餘記錄)。因此,我的下拉菜單中不會包含所有唯一記錄,但只有前20條記錄的唯一記錄。有沒有辦法解決這個問題?如果這不是乾淨的,我會提出一個新問題 – birdy
@birdy:我想問題只是分頁數據。通常會在網格中創建一個尋呼機。你可以在網格中包含'toppager:true'。然後您將能夠按下尋呼機上的「下一步」按鈕來查看接下來的20行數據。或者,您可以包含'rowNum:10000'選項,將每頁默認值20行增加到10000。 – Oleg