【问题标题】:jqgrid inline searchingjqgrid 内联搜索
【发布时间】:2012-02-25 20:44:33
【问题描述】:

我有一个正在执行内联编辑的 jqgrid。我使用的是文本区域而不是文本。完成单元格编辑后如何提交数据。 “Enter”适用于文本,但显然不适用于 textarea,因为它会创建一个新行。

这是我的代码中的一个 sn-p

grid4 = $('#CaseNotes').jqGrid({
   ...
   { name: 'Note', index: 'Note', width: 650, align: 'left', sortable: false, 
      editable: true, edittype: 'textarea', editoptions: { rows: '5', cols: '100' }
   },
   ...
   onSelectRow: function (id) {
      if (id && id != lastsel) {
         grid4.restoreRow(lastsel);
         lastsel = id;
      }
      grid4.jqGrid('editRow', id, true, '', '', '', '', reload);
   },
   editurl: '@Url.Action("EditCaseNote", "CaseNote")',
   ...
});

//function to reload the grid
function reload(id, result) {
   grid4.setGridParam(
      {
         url: '@Url.Action("DisplayCaseNotesGrid", "CaseInfo")',
         datatype: 'json'
      }
   ).trigger('reloadGrid');
}

【问题讨论】:

    标签: asp.net-mvc-3 jqgrid inline-editing


    【解决方案1】:

    如果我理解您的意思是正确的,您的意思是“内联编辑”而不是“内联搜索”。因为您不能使用 Enter 键,所以您必须在调用 saveRow 方法的 Navigator toolbar 中包含一些额外的按钮。您可以手动添加与navButtonAdd 相关的相应行,也可以使用inlineNav 方法。

    【讨论】:

    • 很抱歉我更正了我的帖子。我的意思是内联编辑。所以如果我有额外的按钮,我还需要这个 grid4.jqGrid('editRow', id, true, '', '', '', '', reload); ?
    • @brasewel:需要editRow 来初始化内联编辑。顺便说一句,我更喜欢另一种形式的通话:grid4.jqGrid('editRow', id, {keys: true, afterrestorefunc: reload};。如果你需要在保存后调用reload,你也应该在saveRow方法的调用中使用{afterrestorefunc: reload}选项。
    • Oleg 我用的是 grid4.jqGrid('inlineNav', '#casenotes_pager', { edit: true, add: false });并删除了 onSelectRow。控制器返回后如何调用重载函数刷新网格?
    • @brasewel:我觉得应该是grid4.jqGrid('inlineNav', '#casenotes_pager', { edit: true, add: false, editParams: { keys: true, afterrestorefunc: reload } });
    【解决方案2】:

    感谢 Oleg 的建议,我得以解决此问题。这是我的代码,以防有人遇到类似问题。我删除了我的刷新功能,因为我不再需要它了。

    grid4 = $('#CaseNotes').jqGrid({
    ...
    { name: 'Note', index: 'Note', width: 650, align: 'left', sortable: false, 
      editable: true, edittype: 'textarea', editoptions: { rows: '5', cols: '100' }
    },
    ...
    onSelectRow: function (id) {
       if (id && id != lastsel) {
          grid4.restoreRow(lastsel);
          lastsel = id;
       }
       grid4.jqGrid('editRow', id, { keys: true, afterrestorefunc: reload });
    },
    ...
    });
    //Adds the button to the pager
    grid4.jqGrid('navButtonAdd', '#casenotes_pager', {
       caption: 'Save Case Note',
       buttonicon: 'none',
       onClickButton: function () {
          //calls the saveRow function
          grid4.jqGrid('saveRow', lastsel,
          {
             url: '@Url.Action("EditCaseNote", "CaseNote")'
          }
          );
          //refreshes the grid
          grid4.setGridParam(
          {
             url: '@Url.Action("DisplayCaseNotesGrid", "CaseInfo")',
             datatype: 'json'
          }
          ).trigger('reloadGrid');
       }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 1970-01-01
      • 2012-08-31
      • 2012-03-11
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多