2012-02-25 99 views
0

我有一個jqgrid,我正在執行內聯編輯。我正在使用textarea而不是文本。如何在完成編輯單元格後提交數據。 「Enter」在文本上起作用,顯然不在textarea上,因爲它創建了一個新行。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'); 
} 

回答

0

如果我理解你糾正你的意思是「內聯編輯」而不是「在線搜索」。因爲您不能使用輸入密鑰,您必須在Navigator toolbar中包含一些附加按鈕,其中調用saveRow方法。您可以手動添加相應的行,方法爲navButtonAdd或使用inlineNav方法。

+0

對不起,我糾正了我的帖子。我的意思是內聯編輯。所以如果我有額外的按鈕,我仍然需要這個grid4.jqGrid('editRow',id,true,'','','','',reload); ? – brasewel 2012-02-26 00:01:44

+0

@brasewel:需要'editRow'來初始化內聯式附件。順便說一下,我更喜歡另一種形式的調用:'grid4.jqGrid('editRow',id,{keys:true,afterrestorefunc:reload};'。如果你需要在保存後調用'reload',你應該使用' afterrestorefunc:reload}'選項在saveRow'方法中調用 – Oleg 2012-02-26 00:08:54

+0

Oleg我使用了grid4.jqGrid('inlineNav','#casenotes_pager',{edit:true,add:false});並且刪除了onSelectRow。我想調用我的重裝函數在控制器返回後刷新網格? – brasewel 2012-02-26 00:36:05

0

感謝奧列格的建議,我能夠解決這個問題。這是我的代碼,任何人遇到類似的問題。我刪除了我的刷新功能,因爲我不再需要它。

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