加载网格时jqGrid dataUrl不加载

时间:2012-04-11 13:35:25

标签: select jqgrid

我正在使用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无法解决。并且在编辑后不显示。

2 个答案:

答案 0 :(得分:0)

我认为在编辑开始时加载dataUrl没有任何不利之处。相反,我认为这种行为是有利的。首先,不应加载可选数据。最好按需加载数据。第二个好处是您可以从dataUrl获取当前数据。在开始编辑时,将加载来自dataUrl的当前数据。因此,如果要在服务器上更改数据,则可以在每行编辑时使用不同的值。

如果您只需要加载数据 ,则根本不能使用dataUrl。而不是那样,你可以单独调用Ajax来设置editoptions.value setGridParam

答案 1 :(得分:0)

我有同样的问题 - 我的数据中有一个外键,我希望网格显示该列的一些可理解的值,而不是用户不知道的一些随机密钥。和你一样,我已经使用dataUrl来获取选项,并且希望使用formatter:'select'来显示这些值,即使不编辑行也是如此。问题是这个ajax请求只在编辑行时发生,因此在编辑发生之前它不知道值。我找到的唯一解决方案就是在设置网格之前对这些值进行一些手动ajax加载,并使用这些值来设置editoptions: {value: ... },就像你为其中一个列所做的那样。这是网格格式化程序在编辑之前可以知道这些值的唯一方法。

This answer提供了在网格之前加载选项的示例,但遗漏了formatter:'select'部分 - 这里是关于该文档的文档link