我需要在ajax调用后填充jqgrid。
我有一个函数(在java servelet中),它返回这个json格式:
[{"citta":"XXXX","via":"XXX","telefono":"1111-11111","provincia":"XX","clienteDesc":"Prova","clienteCode":"XXXXX"}]
我将此代码用于jqgrid:
$("#clienti-navgrid").jqGrid( {
//data: c
//datatype: "local"
datatype: "json",
url: '/project/loadnotespese.do',
colNames:['Codice Cliente','Descrizone Cliente','Via','Città','Provincia','Telefono'],
colModel:[
{name:'clienteCode', index:'clienteCode', width:'10', sortable:false},
{name:'clienteDesc', index:'clienteDesc', width:'20', sortable:false},
{name:'via', index:'via', width:'30', sortable:false},
{name:'citta', index:'citta', width:'20', sortable:false},
{name:'provincia', index:'provincia', width:'10', sortable:false},
{name:'telefono', index:'telefono', width:'10', sortable:false}
],
rowNum:500,
autowidth:true,
height:'auto',
recordtext:"Ordini trovati {2}",
emptyrecords:"Nessun risultato",
viewrecords: true,
caption: 'Tabella Clienti',
localReader : {
//
repeatitems: false,
}
});//jqGrid
如果我把
var c = [{"citta":"XXXX","via":"XXX","telefono":"1111-11111","provincia":"XX","clienteDesc":"Prova","clienteCode":"XXXXX"}]
和
data: c, datatype: "local",
有效,但如果我从url获取:'/ project / loadnotespese.do',它就不起作用了。 有什么帮助吗?
答案 0 :(得分:1)
如果您使用datatype: "local"
,则会使用选项localReader
。顺便说一下,repeatitems: false
的值localReader
是默认值(请参阅the documentation)。因此,在使用datatype: "local"
的情况下,您可以从选项列表中删除当前选项localReader: { repeatitems: false }
。
另一方面,如果您使用datatype: "json"
,则会使用其他选项 jsonReader
。 repeatitems
的{{1}}属性的默认值为jsonReader
(请参阅the documentation)。所以你必须添加
repeatitems: false
在jqGrid选项列表的情况下。之后应该成功填充网格。
另一个重要的想法是,要知道的是在数据行的每个项目中指定附加的jsonReader: { repeatitems: false }
属性。 id
值在整个页面上必须是唯一的,并且它将用作网格主体的行(id
)元素的id
属性的值。如果行项的某些其他属性可用作唯一ID,则可以在<tr>
中包含其他设置,或在jsonReader
中的列的相应定义中添加key: true
属性。例如,如果可以将colModel
解释为可以使用的rowid
clienteCode
更新:您应该另外使用
jsonReader: { repeatitems: false, id: "clienteCode" }
在root: function (obj) { return obj; }
内(见here)。所以最后的jsonReader
应该是
jsonReader