Asp.net mvc 3 jqgrid内联搜索

Asp.net mvc 3 jqgrid内联搜索,asp.net-mvc-3,jqgrid,inline-editing,Asp.net Mvc 3,Jqgrid,Inline Editing,我有一个jqgrid,我正在其上执行内联编辑。我使用的是文本区域而不是文本。编辑完单元格后,如何提交数据。“回车”在文本上起作用,而在文本区域上显然不起作用,因为它创建了一个新行 这是我的代码片段 grid4 = $('#CaseNotes').jqGrid({ ... { name: 'Note', index: 'Note', width: 650, align: 'left', sortable: false, editable: true, edittype:

我有一个jqgrid,我正在其上执行内联编辑。我使用的是文本区域而不是文本。编辑完单元格后,如何提交数据。“回车”在文本上起作用,而在文本区域上显然不起作用,因为它创建了一个新行

这是我的代码片段

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');
}

如果我理解你的意思,你的意思是“内联编辑”而不是“内联搜索”。因为不能使用Enter键,所以必须在which调用方法中包含一些附加按钮。您可以根据或使用方法手动添加相应的行。

多亏了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');
   }
});

对不起,我更正了我的帖子。我的意思是内联编辑。所以如果我有额外的按钮,我还需要这个grid4.jqGrid('editRow',id,true,,'','',reload)@brasewel:需要
editRow
来初始化内联平洞。顺便说一句,我更喜欢另一种调用形式:
grid4.jqGrid('editRow',id,{keys:true,afterrestorefunc:reload};
。如果保存后需要调用
reload
,那么在调用
saveRow
方法时也应该使用
{afterrestorefunc:reload}
选项。Oleg我使用了grid4.jqGrid('InlineAV','casenotes_pager',{edit:true,add:false});并删除了onSetrow。在控制器返回后,如何调用我的重载函数刷新网格?@brasewel:我认为它应该像
grid4.jqGrid('InlineAV','casenotes_pager',{edit:true,add:false,Edits:{keys:true,afterrestorefunc:reload});