我正在使用inlineNav(这里有成功的帮助!)。
现在在select语句中使用dataUrl
,我不明白这种行为。
加载网格时不会加载选择选项。在按下编辑或添加记录之前,不会选择HTML请求。
我可以在网格加载后立即加载吗?
$("#navgrid").jqGrid({
sortable: true,
rownumbers: true,
url: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jq&tableid=carepln',
editurl: 'cms.dbw',
datatype: 'json',
mtype: 'GET',
pager: '#navgrid_bottompager',
rowNum: 10,
rowList: [10,50,100],
width: 750,
height: '100%',
shrinkToFit: false,
toolbar: [false,'top'],
sortname: 'id',
sortorder: 'asc',
viewrecords: true,
gridview: true,
altRows: false,
toppager: true,
caption: 'Care Plan Detail',
colNames: ['ID','Act','Resident Code','Care Code'],
colModel: [
{name:'id',index:'id',width:50,align:'center',search:false,key:true,hidden:true},
{name:'active',width:30,align:'center',editable:true,edittype:'checkbox',editoptions: {value:'Y:N'},formatoptions:{disabled:false,value:"Y:N"}},
{name:'resid',align:'left',editable:true,width:70},
{name:'classid',align:'left',editable:true,edittype: 'select',editoptions: { dataUrl: 'cms.dbw?action=ajaxgrid&sessionid=3d70a780-d6ec-102f-bd56-0015171f0bcc&subaction=jqsubtable&tableid=careserv&field1=classid&field2=description'} ,width:70}
]
});
{ “网页”:1, “记录”:4024, “总”:403, “行”:[{ “ID” 为 “1”, “细胞”:[ “1”, “Y”,” 100243" , “22020”]},{ “ID”: “2”, “细胞”:[ “2”, “Y”, “100220”, “22020”]},{ “ID”: “3”, “细胞”:[ “3”, “Y”, “100193”, “22020”]},{ “ID”: “4”, “细胞”:[ “4”, “Y”, “100082”,” 22020 “]},{” ID “:” 5" , “细胞”:[ “5”, “Y”, “100068”, “22020”]},{ “id为”: “6”, “小区”: [ “6”, “Y”, “100241”, “22020”]},{ “ID”: “7”, “细胞”:[ “7”, “Y”, “100215”, “22020”]} ,{ “ID”: “8”, “细胞”:[ “8”, “Y”, “100059”, “22020”]},{ “ID”: “9”, “细胞”:[ “9” , “Y”, “100240”, “22020”]},{ “id为”: “10”, “小区”:[ “10”, “Y”, “100009”, “22020”]}]}
在编辑开始之前,dataUrl
无法解决。并且在编辑后不显示。
答案 0 :(得分:0)
我认为在编辑开始时加载dataUrl
没有任何不利之处。相反,我认为这种行为是有利的。首先,不应加载可选数据。最好按需加载数据。第二个好处是您可以从dataUrl
获取当前数据。在开始编辑时,将加载来自dataUrl
的当前数据。因此,如果要在服务器上更改数据,则可以在每行编辑时使用不同的值。
如果您只需要加载数据 ,则根本不能使用dataUrl
。而不是那样,你可以单独调用Ajax来设置editoptions.value
setGridParam
。
答案 1 :(得分:0)
我有同样的问题 - 我的数据中有一个外键,我希望网格显示该列的一些可理解的值,而不是用户不知道的一些随机密钥。和你一样,我已经使用dataUrl来获取选项,并且希望使用formatter:'select'
来显示这些值,即使不编辑行也是如此。问题是这个ajax请求只在编辑行时发生,因此在编辑发生之前它不知道值。我找到的唯一解决方案就是在设置网格之前对这些值进行一些手动ajax加载,并使用这些值来设置editoptions: {value: ... }
,就像你为其中一个列所做的那样。这是网格格式化程序在编辑之前可以知道这些值的唯一方法。
This answer提供了在网格之前加载选项的示例,但遗漏了formatter:'select'
部分 - 这里是关于该文档的文档link。