Asp.net mvc 在CellEdit JqGrid上检索网格Id

Asp.net mvc 在CellEdit JqGrid上检索网格Id,asp.net-mvc,jqgrid,Asp.net Mvc,Jqgrid,我试图根据这个文档进行单元格编辑 我有两个问题: 如何将我的行的索引发布到服务器: 我得到的信息如下: a) 单元格的值 b) 罗维德 问题是rowId帮不了我。我需要显示的信息的实际Id,以便使用该Id进行服务器更新 colNames:['Id','Codigo','Nombre'] colModel:[ {name:'Id',index:'Id',width:50,align:'left',hidden:true} {名称:'Codigo',索引:'Codigo',宽度:55,对齐:'le

我试图根据这个文档进行单元格编辑

我有两个问题:

  • 如何将我的行的索引发布到服务器: 我得到的信息如下: a) 单元格的值 b) 罗维德
  • 问题是rowId帮不了我。我需要显示的信息的实际Id,以便使用该Id进行服务器更新

    colNames:['Id','Codigo','Nombre']

    colModel:[ {name:'Id',index:'Id',width:50,align:'left',hidden:true}

    {名称:'Codigo',索引:'Codigo',宽度:55,对齐:'left',可编辑:true,编辑规则: {number:true}}

    {名称:'Nombre',索引:'Nombre',宽度:200,对齐:'left'}]

    我需要列“Id”的值来执行更新

    2.我不明白文档中如何管理来自服务器的错误,因此我无法显示错误消息

    多谢各位

    注:

    a) 我已经在trirand论坛上问过了,但是没有人回复我

    b) 如果有人这样做了,如果能帮我粘贴代码,那会有帮助的


    c) 我正在从事MVC2ASP.net的工作,主要是在线编辑或表单编辑,而不是单元格编辑。我建议您切换到两种现代表单编辑中的一种,或者

  • 信息RowId已经是列“Id”的值
    getInd(rowid,false)
    方法返回id=rowid指定的网格表中行的索引
  • 为了能够显示从服务器返回的错误,您需要知道在错误情况下从服务器返回的数据的格式。例如,如果从服务器返回的错误具有JSON格式
    {“Detail”:“error text”}
    (来自WFC服务的错误),则可以定义jqGrid的loadError参数,如下所示:

    loadError:function(xhr,st,err){alert(errorTextFormat(xhr));}

  • 其中的errorTextFormat函数对错误消息进行解码,并可以

    var errorTextFormat = function (data) {
        var str = data.responseText.substr(0, 10);
        if (str === '{"Detail":') {
            var errorDetail = jQuery.parseJSON(data.responseText);
            var s = "Error: '";
            s += data.statusText;
            s += "'. Details: ";
            s += errorDetail.Detail;
            return s;
        } else {
            var res = "Status: '";
            res += data.statusText;
            res += "'. Error code: ";
            res += data.status;
            return res;
        }
    };
    
    您可以使用相同的函数来解码行编辑错误(至少是内联编辑或表单编辑)。ASP.NET MVC主要以HTML格式返回消息,因此错误解码函数应该是另一个函数。我不像大多数人那样使用单元格编辑,因此在单元格编辑中的错误消息的情况下或自定义时,我无法帮助您。

    Q1: 您可以在colModel中使用Key:true、editable:true

    { key:true, name: 'Id', index: 'Id', width: 50, align: 'left', editable: true, hidden:true}
    
      Then in add/edit method ( add beforeShowForm method in add/edit method), you have to explicitly hide this field the field of id inside of beforeShowForm method
      $('#tr_Id').hide();
    
       i.e
             beforeShowForm: function (e) {
                       $('#tr_Id').hide();
                    }
    
    问题2:


    我希望这对你有用。您仍然需要任何帮助,请在下面评论

    谢谢Oleg,我将尝试内联编辑。我对单元格编辑很好奇,因为我只需要编辑那个单元格。但我的问题没有得到回答。如何将“Id”发送到服务器?刚刚发现,您曾问过我一次。也许你的问题现在已经解决了。可能您现在发现,修改后将发送的数据(例如列“Nombre”)看起来像
    Nombre=NewData&id=2&oper=edit
    ,因此您请求的列的标识问题不存在。您同时拥有rowId和列名(与“column'Id'”相同)。
      add 'afterSubmit' method in add/edit/delete method , i'm using Web api Server ,
      i.e  
          afterSubmit: function (response) {
                if (response.statusText == 'Created') {
                    //   alert("Create Successfully")
                    ShowMessage("Add Successfully", 'Success');
                    //reload the grid
                    $(this).jqGrid("setGridParam", { datatype: 'json' }); 
                    return [true];
                }
                else {
                    ShowMessage("Operation Failed", 'Error');
                    return [false];
                }
    
            },