代码之家  ›  专栏  ›  技术社区  ›  Sanchitos

在CellEdit JqGrid上检索网格Id

  •  1
  • Sanchitos  · 技术社区  · 16 年前

    我试着根据这个文档编辑一个单元格 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing

    我有两个问题:

    1. 如何获取发布到服务器的行的索引: 我得到的信息如下: a)电池的价值 b)RowId公司

    问题是rowId帮不了我。我需要显示的信息的实际Id,这样我就可以用这个Id进行服务器更新。

    域名:['Id','Codigo','Nombre'],

    colModel公司:[ {名称:'Id',索引:'Id',宽度:50,对齐:'left',隐藏:true},

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

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

    我需要列'Id'的值来进行更新。

    2.文档中不了解如何管理服务器上的错误,因此无法显示错误消息。

    非常感谢你!

    笔记:

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

    b)如果有人这么做了,帮我粘贴代码会有帮助。

    c)我正在开发MVC 2 Asp.net

    2 回复  |  直到 16 年前
        1
  •  0
  •   Falko    11 年前

    主要是内联编辑或表单编辑,而不是单元格编辑。我建议您切换到两个现代表单编辑之一,或者

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

      loadError:函数(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;
        }
    };
    

    可用于解码行编辑错误(至少内联编辑或表单编辑)的同一函数。NET MVC返回的大多数消息都是HTML格式的,因此您的错误解码函数应该是另一个。我不像其他人那样使用单元格编辑,所以在这种情况下无法帮助您或自定义单元格编辑中的错误消息。

        2
  •  0
  •   Asif Raza    9 年前

    问题1: 可以在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:

      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];
                }
    
            }, 
    

    我希望这对你有用。你还需要帮助,请在下面评论

    推荐文章