在jqGrid中,我是否必须手动调用saveRow来触发ajax保存请求?

在jqGrid中,我是否必须手动调用saveRow来触发ajax保存请求?,jqgrid,Jqgrid,这里的文档不是很清楚: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing&s[]=编辑URL#保存行 用户编辑完表格单元格/行后,我必须手动调用saveRow,还是当行(单元格?)失去焦点时,jqGrid会自动触发saveRow 在初始设置中,我给jqGrid一个editurl值,但在编辑完一行后,我没有看到任何ajax请求发出。您有两个选项: 使用参数键:true。在这种情况下,如果用户按Enter键将调用该方法

这里的文档不是很清楚:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing&s[]=编辑URL#保存行

用户编辑完表格单元格/行后,我必须手动调用
saveRow
,还是当行(单元格?)失去焦点时,jqGrid会自动触发saveRow

在初始设置中,我给jqGrid一个
editurl
值,但在编辑完一行后,我没有看到任何ajax请求发出。

您有两个选项:

  • 使用参数
    键:true
    。在这种情况下,如果用户按Enter键将调用该方法,如果用户按Esc键将调用该方法。在这种情况下,您不需要显式调用。在一个调用中,通常可以看到以下示例
  • 您可以调用,而不是在回调中调用。另外(或者)您可以为用户提供一个保存当前编辑行的界面。它可以是某种“保存”按钮

  • 虽然这是一个老问题,但我想添加一个显式调用
    editRow
    然后调用
    saveRow
    的示例,这是一种非常常见的情况

    以下代码允许用户在选定行之间自由移动,并保存以前选定的编辑行:

    var grid = $('#gridName').jqGrid({
       // ... some grid properties ...
       editurl: 'clientArray',
       cellEdit: false, // that's the default, but just to make clear that wer'e in inline edit mode
       onSelectRow: utils.onSelectRow
       // ... some more grid properties ...
    });
    var utils = {
       prevRowId: null, // we have to keep the previous row id
       onSelectRow: function (rowId, selectionStatus, event) {
          if (rowId && rowId !== utils.prevRowId) {
             var $grid = $(event.target).closest('table');
             $grid.jqGrid('saveRow', utils.prevRowId);
             $grid.jqGrid('editRow', rowId, { keys: true });
             utils.prevRowId = rowId;
          }
       },
    };
    

    我找不到一个Oleg的官方例子可以做到这一点(他们都使用按钮,或者调用
    retrieveRow
    而不是
    saveRow
    )。

    Hi@Oleg,从上面的答案中,我需要第二个选项,以及save按钮和cancel按钮以及每行的末尾。你能给我指一个现有的asp.net web表单项目吗。我试图通过现有的东西,但无法正确理解它。如果我能得到一个小样本,其中包含以下场景的指南,那将是非常有帮助和感激的:-1。在线编辑onclick,2。保存或取消按钮,位于具有可访问事件的每行末尾。这样我就可以在“拯救之舔”时打Ajax电话了。@Ganesh:对不起,你问的问题太普通了。我没有Web表单项目。也许这是一个人可以使用的。Web表单非常古老,实际上已经过时,因此很难谈论现有的ASP.NET Web表单项目。要在每行中添加编辑按钮,可以使用
    格式化程序:“操作”
    。如果使用,您只需添加最后一列,其中包含一些
    name
    属性和
    模板:“操作”
    。要保存对服务器的修改,仍然需要编写一些服务器代码。