Sending additional parameters to editurl on JQgrid

2019-01-27 02:52发布

My problem now is trying to send the ID (editable: false) of a row when editing that row.

For example, i have a grid with columns userid(editable: false), username(editable: true), firstname(editable: true), lastname(editable: true). When editing the row the grid is only sending the parameters username, firstname and lastname. In the server side i need the userid to know to which user i've tu apply those new values.

the editUrl looks like:

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

Thanks

This is the full code:

$.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
    });
})

3条回答
Explosion°爆炸
2楼-- · 2019-01-27 03:16

You can use

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

in the definition of the piezaId (ID) column. The parameter hidedlg is currently not real needed, but can be useful if you decide the use other jqGrid features.

查看更多
孤傲高冷的网名
3楼-- · 2019-01-27 03:23

in your onSelectRow callback, you can modify the editUrl to be whatever you want, including passing in the ID you need.

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

jqGrid will add all the other nececessary params to that editurl for you.

查看更多
我命由我不由天
4楼-- · 2019-01-27 03:31

Passing values in the GET string worked for me.

editurl: '/ajax/update?line=1',
查看更多
登录 后发表回答