Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用saveRow的jqgrid extraParam参数_Jqgrid - Fatal编程技术网

如何使用saveRow的jqgrid extraParam参数

如何使用saveRow的jqgrid extraParam参数,jqgrid,Jqgrid,其中一个单元格中的edittype是select,其键值对如下所示 colModel: [ {name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true }, { name: 'ABC', index: 'ABC', width: '16%', editable: true, edittype: "select", editoptions: { value:

其中一个单元格中的edittype是select,其键值对如下所示

 colModel: [
            {name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true },
            { name: 'ABC', index: 'ABC', width: '16%', editable: true, edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT"} },
            { name: 'Emailid', index: 'Emailid', width: '16%', editable: true, sortable: true },
            ],
现在,在添加新行时,如果我选择FedEx for ABC列,它将发送FE to EditURL链接,而不是FedEx,因此我希望使用extraParam to EditURL发送FedEx

所以请任何人告诉我如何实施它

为此,我的代码如下

更新代码

Oleg的更新代码


代码可能与以下内容有关

var grid=jQuerylist5, 编辑机器人, myEditParam={ 凯斯:没错, oneditfunc:函数id{ editingRowId=id; }, afterrestorefunc:函数id{ editingRowId=未定义; }, 外参数:{ //我们从列中获取所选选项的文本 //“Emailid”,并将数据作为附加信息包括在内 //参数“EmailidText” EmailidText:函数{ return$+editingRowId+\u Emailid>选项:selected.text; } } }; grid.jqGrid{ url:“/home1/GetUserData”, 数据类型:json, ... onsetrow:函数id{ var$this=$this,gridIdSelector=+$.jgrid.jqIDthis.id; $this.jqGrid'setGridParam'{ editurl:id==新行? /home1/InsertUserData: /home1/EditUserData }; 如果编辑rowId!==id{ $gridIdSelector+\u iledit.click; } } }; $grid.jqGrid'navGrid'、'pager', {编辑:false,添加:false,搜索:false,刷新:false}, {},{},{url:'/home1/DeleteUserData'}; //InlineAV具有restoreAfterSelect:true per default,因此我们不需要调用 //显式恢复 $grid.jqGrid'inlineNav','pager', {edit:true,add:true,editParams:myEditParam, addParams:{addRowParams:myEditParam}};
为了能够帮助您,了解如何使用内联编辑是非常重要的?。您是使用格式化程序:“操作”还是使用InlineAV或直接调用存储行。在所有情况下,您都会有一个小小的另一个实现。Oleg我已经更新了我的代码,不管怎样,我正在使用内联编辑。Oleg:很好的解决方案,这正是我想要的。非常感谢您为我节省时间。Oleg:在这里,我们将函数绑定到EmailidText,我们不能将函数绑定到myEditParam对象的extraparam,这样它将动态返回键、值pairof对象的列表。@Meraj:对不起,我不明白您的意思。你能把你的问题重新表述一下,更清楚地描述你想要什么吗?奥列格:很抱歉,这个模棱两可的问题,我已经更新了你提供给我的代码,不管是否可能。我已经试过了,但没有成功,所以是否有其他方法。@Meraj:我不确定我是否理解您希望通过extraparam返回的键、值对的来源。如果您有一些带有命名控件的表单,则可以使用$.serializeArray:extraparam:{formData:function{return$myForm.serializeArray;}}。显示如何在过帐之前重新格式化从序列化数组返回的数据。您可以使用与我为postData显示的相同的方式重新格式化extraparam。我希望这是你问的。
var grid = jQuery("#list5").jqGrid({
        url: '/home1/GetUserData',
        datatype: "json",
        mtype: "POST",
        colNames: ['Code', 'LoginID', 'Emailid'],
        colModel: [
                        {name: 'Code', index: 'Code', width: '16%', editable: true, sortable: true },
                        { name: 'LoginID', index: 'LoginID', width: '16%', editable: true, sortable: true },
                        { name: 'Emailid', index: 'Emailid', width: '16%', editable: true, edittype: "select", editoptions: { value: "FE:FedEx;TN:TNT"} },
                      ],
        rowNum: 10,
        autowidth: true,
        height: '100%',
        rowList: 10,
        pager: $("#pager2"),
        editurl: "/home1/EditUserData",
        onSelectRow: function (id) {
            if (id && id !== lastsel2) {
                if (id == "new_row") {
                    grid.setGridParam({ editurl: "/home1/InsertUserData" });
                }
                else {
                    grid.setGridParam({ editurl: "/home1/EditUserData" });
                }
                jQuery('#list5').restoreRow(lastsel2);
                jQuery('#list5').jqGrid('editRow', id, true, pickdates);
                $("#list5_ilsave").addClass("ui-state-disabled");
                $("#list5_ilcancel").addClass("ui-state-disabled");
                $("#list5_iladd").removeClass("ui-state-disabled");
                $("#list5_iledit").removeClass("ui-state-disabled");
                lastsel2 = id;
            }
        },
        caption: "Simple data manipulation"
    });
    jQuery("#list5").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: true, search: false, refresh: false }, {}, {}, { url: '/home1/DeleteUserData' });
    jQuery('#list5').jqGrid('inlineNav', '#pager2', { edit: true, add: true, editParams: {extraparam: XYZ()}});
});

function XYZ()
{
  // from here i want to return the text of combo of selected row.
}
var grid = jQuery("#list5"),
    editingRowId,
    myEditParam = {
        keys: true,
        oneditfunc: function (id) {
            editingRowId = id;
        },
        afterrestorefunc: function (id) {
            editingRowId = undefined;
        },
        extraparam: 
            // we get the text of selected option from the column
            // 'Emailid' and include the data as additional
            // parameter 'EmailidText'
           // EmailidText: function () {
             //   return $("#" + editingRowId + "_Emailid>option:selected").text();
            //}
// **my changes here bind ABC Function which return key , value pair of object** IS THIS POSSIBLE
           function () {
               ABC(); 
            }

    };

grid.jqGrid({
    url: '/home1/GetUserData',
    datatype: "json",
    ...
    onSelectRow: function (id) {
        var $this = $(this), gridIdSelector = '#' + $.jgrid.jqID(this.id);
        $this.jqGrid('setGridParam', {
            editurl: (id === "new_row" ?
                          "/home1/InsertUserData" :
                          "/home1/EditUserData")
        });
        if (editingRowId !== id) {
            $(gridIdSelector + "_iledit").click();
        }
    }
});
$grid.jqGrid('navGrid', '#pager',
    { edit: false, add: false, search: false, refresh: false},
    {}, {}, { url: '/home1/DeleteUserData' });

// inlineNav has restoreAfterSelect: true per default so we don't need to call
// restoreRow explicitly
$grid.jqGrid('inlineNav', '#pager',
    { edit: true, add: true, editParams: myEditParam,
        addParams: {addRowParams: myEditParam } });