서버에 json 포스트를 사용하여 레코드를 수신하는 페이지에 jqGrid가 있습니다. 같은 페이지에는 삭제 버튼도 있습니다. 삭제 버튼을 클릭하면 선택한 레코드를 삭제하기 위해 서버에 아약스 게시물이 사용됩니다. 레코드를 삭제 한 후 서버가 성공 코드를 반환하면 격자를 새로 고침해야합니다.마지막 레코드가 제거 될 때 jqGrid reloadGrid가 작동하지 않습니다.
그리드에 레코드가 하나만있는 경우를 제외하고는 정상적으로 작동하는 것 같습니다. 삭제 한 마지막 레코드는 그리드에서 절대 제거되지 않습니다. 바닥 글의 새로 고침 단추를 눌러도 여전히 사라지지 않습니다. 하나 이상의 레코드가있을 때 예상대로 새로 고칩니다.
나는 jqGrid를 처음 사용하므로 뭔가 잘못하고 있다고 확신합니다. 어떤 도움을 주시면 감사하겠습니다.
있는 jqGrid 정의
$('#gridOrgs').jqGrid({
url: 'some url goes here',
datatype: 'json',
mtype: 'POST',
loadonce:false,
colNames: ['ID', 'Name', 'City', 'Province', 'Admin'],
colModel: [
{ name: 'Id', index: 'Id', hidedlg: true, hidden: true, sortable: false },
{ name: 'CompanyName', index: 'CompanyName', width: 200, sorttype: 'text' },
{ name: 'City', index: 'City', width: 150, sorttype: 'text' },
{ name: 'Province', index: 'Province', width: 150, sorttype: 'text' },
{ name: 'IsAdmin', index: 'IsAdmin', width: 50, sorttype: 'text', formatter: 'checkbox', align: 'center'},
],
pager: '#pagerOrgs',
jsonReader: {
repeatitems: false,
id: 'Id' },
rowNum: 10,
rowList: [10, 25, 50, 75, 100],
sortname: 'CompanyName',
sortorder: 'desc',
viewrecords: true,
caption: 'Companies',
hidegrid: false,
width: 650,
height: 400,
onSelectRow: function (id) {
if (id)
RowSelected(id, $('#gridOrgs').getCell(id,'IsAdmin'));
else
NoRowSelected();
}
});
jQuery("#gridOrgs").jqGrid('navGrid','#pagerOrgs',{edit:false,add:false,del:false});
삭제 버튼 클릭 이벤트 :
$('#btnDelete').click(function() {
var id = jQuery("#gridOrgs").jqGrid('getGridParam','selrow');
if (id)
$.post('@Url.Action("Json_Delete", "Organization")', {'id': id}, function(data){ProcessDeleteResponse(data.result);}, 'json');
else
$('#dialogNothingSelected').dialog('open');
});
function ProcessDeleteResponse(resultCode) {
if (resultCode == 'success')
$('#gridOrgs').trigger('reloadGrid');
}
나는 또한
.trigger 시도 ('reloadGrid'를, [{페이지 : 1}]);
.trigger ('reloadGrid', [{current : true}]);
내가하는 일과 관계없이 마지막 레코드는 그리드에 남아 있습니다.
마지막으로 한 가지 : reloadGrid를 트리거하면 그리드가 서버를 호출하고 업데이트 된 정보를받습니다. 업데이트 된 정보에는 총 레코드 수에 대해 0이 포함됩니다.
Thanks again. 내가 다음과 같은 방법으로 호출하여이 문제를 해결할 수 있었던 것 같다