2012-02-25 2 views
0

인라인 편집을 수행하고있는 jqgrid가 있습니다. 텍스트 대신 텍스트 영역을 사용하고 있습니다. 셀 편집이 완료되면 어떻게 데이터를 제출합니까? "Enter"는 텍스트에서 작동하며 새 줄을 만들기 때문에 텍스트 영역에 표시되지 않습니다. 난 당신이 대신 "인라인 검색"의 "인라인 편집"을 의미 정정 이해한다면 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

에서 조각입니다. 을 입력 할 수 없으므로 키를 입력하면 saveRow 메서드를 호출하는 Navigator toolbar에 몇 가지 추가 버튼을 포함해야합니다. navButtonAdd에 대해 수동으로 해당 행을 추가하거나 inlineNav 메서드를 사용할 수 있습니다.

+0

나는 내 게시물을 수정해서 죄송합니다. 나는 인라인 편집을 의미했습니다. 그래서 여분의 버튼이 있다면 여전히 grid4.jqGrid ('editRow', id, true, '', '', '', '', reload)를 가져야합니다. ? – brasewel

+0

@brasewel :'editRow'는 인라인 aditing을 초기화하기 위해 필요합니다. 그건 그렇고 다른 형식의 호출을 선호한다 :'grid4.jqGrid ('editRow', id, {keys : true, afterrestorefunc : reload};'저장 후에'reload'를 호출해야한다면'{{ afterrestorefunc : reload}'옵션도 saveRow 메소드를 호출 할 때 사용합니다. – Oleg

+0

Oleg grid4.jqGrid ('inlineNav', '#casenotes_pager', {edit : true, add : false})를 사용하고 onSelectRow를 제거했습니다. 컨트롤러가 돌아온 후 그리드를 새로 고치기 위해 리로드 함수를 호출해야합니까? – brasewel

0

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