0

我正在使用 inlineNav (由于这里的帮助而成功!)。

现在dataUrl在 select 语句中使用,我不明白这种行为。

加载网格时不加载选择选项。在按下编辑或添加记录之前,不会发出选择 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}
    ]
}); 

{"page":1,"records":4024,"total":403,"rows":[{"id":"1","cell":["1","Y","100243", "22020"]},{"id":"2","cell":["2","Y","100220","22020"]},{"id":"3","cell" :["3","Y","100193","22020"]},{"id":"4","cell":["4","Y","100082","22020"] },{"id":"5","cell":["5","Y","100068","22020"]},{"id":"6","cell":["6 ","Y","100241","22020"]},{"id":"7","cell":["7","Y","100215","22020"]},{"id":"8","cell":["8","Y","100059","22020"]},{"id":"9", "细胞":["9","Y","100240","22020"]},{"id":"10","细胞":["10","Y","100009"," 22020"]}]}

dataUrl开始编辑之前不会解决。并且编辑后不显示。

4

2 回答 2

0

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

该答案提供了在网格之前加载选项的示例,但省略了该formatter:'select'部分 - 这是有关该文档的链接。

于 2012-04-14T22:16:17.523 回答
0

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

如果您只需要加载一次数据,则根本无法使用dataUrl。取而代之的是,您可以editoptions.value针对setGridParam.

于 2012-04-11T22:08:47.920 回答