Javascript 将附加参数发送到JQgrid上的editurl

Javascript 将附加参数发送到JQgrid上的editurl,javascript,jquery,ajax,datagrid,jqgrid,Javascript,Jquery,Ajax,Datagrid,Jqgrid,我现在的问题是,在编辑某行时,试图发送该行的ID(editable:false) 例如,我有一个网格,其中列有userid(可编辑:false)、username(可编辑:true)、firstname(可编辑:true)、lastname(可编辑:true)。编辑行时,网格仅发送参数username、firstname和lastname。在服务器端,我需要userid来知道我将这些新值应用到了哪个用户 editUrl看起来像: editurl : CONTEXT_PATH+'/ajax/adm

我现在的问题是,在编辑某行时,试图发送该行的ID(
editable:false

例如,我有一个网格,其中列有userid(
可编辑:false
)、username(
可编辑:true
)、firstname(
可编辑:true
)、lastname(
可编辑:true
)。编辑行时,网格仅发送参数username、firstname和lastname。在服务器端,我需要userid来知道我将这些新值应用到了哪个用户

editUrl看起来像:

editurl : CONTEXT_PATH+'/ajax/admin/savePart.do?category=1',
谢谢

这是完整的代码:

$.jgrid.useJSON = true;
//http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3Acommon_rules
$(document).ready(function() {
    //alert(CONTEXT_PATH);
    var lastsel;
    jQuery("#rowed3").jqGrid(
            {
                url : CONTEXT_PATH+'/ajax/getPartesByCategory.do?catid=<s:property value="categoryId" />',
                //url : '/autoWEB/text.html',
                datatype: "json",
                ajaxGridOptions: { contentType: "application/json" },
                jsonReader : { 
                    root: "rows", 
                    page: "page", 
                    total: "total", 
                    records: "records", 
                    repeatitems: false 
                },
                headertitles: true,
                colNames : [ 'ID', 'Pieza', 'Disponible'],
                colModel : [ {
                    name : 'piezaId',
                    index : 'piezaId',
                    align : "right",
                    width : 50, 
                    editable : false,
                    required : true
                }, {
                    name : 'descripcion',
                    index : 'descripcion',
                    width : 390,
                    editable : true,
                    required : true
                }, {
                    name : 'disponible',
                    index : 'disponible',
                    width : 80,
                    editable : true,
                    edittype : 'select',
                    editoptions:{value:"0:No;1:Si"},
                    required : true
                } ],
                rowNum : 20,
                rowList : [ 20, 40, 60, 80 ],
                pager : '#prowed3',
                sortname : 'piezaId',
                postData: {piezaId : lastsel},
                mtype:"POST",
                viewrecords : true,
                sortorder : "desc",
                onSelectRow : function(id) {
                    if (id && id !== lastsel) {
                        jQuery('#rowed3').jqGrid('restoreRow', lastsel);
                        jQuery('#rowed3').jqGrid('editRow', id, true);
                        lastsel = id;
                    }
                },
                editurl : CONTEXT_PATH+'/ajax/admin/savePieza.do?categoria=<s:property value="categoryId" />',
                caption : "Piezas"
            });
    jQuery("#rowed3").jqGrid('navGrid', "#prowed3", {
        edit : false,
        add : false,
        del : false
    });
})
$.jgrid.useJSON=true;
//http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3Acommon_rules
$(文档).ready(函数(){
//警报(上下文路径);
var lastsel;
jQuery(“#rowed3”).jqGrid(
{
url:CONTEXT_PATH+'/ajax/getPartesByCategory.do?catid=',
//url:“/autoWEB/text.html”,
数据类型:“json”,
ajaxGridOptions:{contentType:“application/json”},
jsonReader:{
根:“行”,
第页:“第页”,
总计:“总计”,
记录:“记录”,
重复项:false
},
头像:是的,
colNames:['ID','Pieza','disponable'],
colModel:[{
名称:'piezaId',
索引:“piezaId”,
对齐:“右”,
宽度:50,
可编辑:false,
必填项:true
}, {
名称:“描述”,
索引:“描述”,
宽度:390,
是的,
必填项:true
}, {
名称:'可争议',
索引:'可争议',
宽度:80,
是的,
edittype:'选择',
editoptions:{value:“0:No;1:Si”},
必填项:true
} ],
rowNum:20,
行列表:[20,40,60,80],
传呼机:“#prowed3”,
sortname:‘piezaId’,
postData:{piezaId:lastsel},
mtype:“POST”,
viewrecords:是的,
巫师:“描述”,
OnSetrow:功能(id){
if(id&&id!==lastsel){
jQuery('#rowed3').jqGrid('restoreRow',lastsel);
jQuery('#rowed3').jqGrid('editRow',id,true);
lastsel=id;
}
},
editurl:CONTEXT_PATH+'/ajax/admin/savePieza.do?categoria=',
描述:“Piezas”
});
jQuery(“#rowed3”).jqGrid('navGrid',“#prowed3”{
编辑:false,
加:错,,
戴尔:错
});
})
您可以使用

hidden: true, editable: true, editrules: { edithidden: false }, hidedlg: true

piezaId
(ID)列的定义中。当前不需要参数
hidedlg
,但如果您决定使用其他jqGrid功能,则该参数可能会很有用。

在OnSetrow回调中,您可以将editUrl修改为您想要的任何内容,包括传入所需的ID

$("#rowed3").jqGrid('setGridParam', {editurl:'whatever/url/you/need/with/the/id'});

jqGrid将为您将所有其他必要的参数添加到该editurl。

在GET字符串中传递值

editurl: '/ajax/update?line=1',

如果
hidedlg
设置为true,此列将不会出现在模式对话框中,用户可以在该对话框中选择要显示或隐藏的列(
columnChooser
)。有关更多详细信息,请参阅。