내가 있는 jqGrid 4.4.4V 함께 일하고, 나는 두 개의 격자 난의는 0,1와 같은 업데이트하는 행 ID를 GRID1에서 GRID2 여러 행을 추가 할 때 GRID1 및 GRID2, 을 가정 해 봅시다이 ,. ..하지만 하나씩 행을 추가 할 때마다 ID는 '0'부터 시작합니다. 이렇게 여러 번 수행하면 모든 행 ID는 '0'과 같을 것입니다. rowIds를 항상 고유하게 만들 수있는 방법이 있습니까?있는 jqGrid addRowData ROWID는 항상 0
참고 : 데이터가 그리드에 수동으로 추가되는 것이 아니라 SQL에서 가져 오는 것입니다. 다음은 두 개의 격자에 대한 코드입니다.
GRID1 :
$("#grid1").jqGrid({
url: "/.......some handler path",
datatype: 'json',
contentType: "application/json; charset-utf-8",
mtype: 'Get',
colNames: ['Val ID', 'Val Name', 'Description', 'Dept', 'Vam', 'Venue', 'Venue', 'Solution', 'Method', 'Type'],
colModel: [
{ name: 'valId', index: 'valId', hidden: true },
{ name: 'valName', index: 'valName', formatter: Namefield, width: 400 },
{ name: 'description', index: 'description', width: 300 },
{ name: 'dep', index: 'dep', width: 300 },
{ name: 'vam', index: 'vam', width: 300 },
{ name: 'venueId', index: 'venueId', hidden: true },
{ name: 'venue', index: 'venue', width: 250 },
{ name: 'solution', index: 'solution', width: 400 },
{ name: 'Method', index: 'Method', width: 300 },
{ name: 'Type', index: 'Type', hidden: true },
],
pager: $('#pager'),
key:true,
rowNum: 10,
rowList: [10, 20, 30, 40],
height: '100%',
viewrecords: true,
caption: '',
sortname: 'Val Name',
sortorder: "desc",
emptyrecords: 'No records to display',
autowidth: true,
multiselect: true,
multiselectWidth: 50,
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
}
});
GRID2 :
$("#grid2").jqGrid({
datatype: 'function',
mtype: 'Post',
colNames: ['Val ID', 'Val Name', 'Description', 'Dept', 'Vam', 'Venue ID', 'Venue', 'Solution', 'Method', 'Type'],
colModel: [
{ name: 'valId', index: 'valId', hidden: true },
{ name: 'valName', index: 'valName', formatter: Namefield, width: 400 },
{ name: 'description', index: 'description', width: 300 },
{ name: 'dep', index: 'dep', width: 300 },
{ name: 'vam', index: 'vam', width: 300 },
{ name: 'venueId', index: 'venueId', hidden: true },
{ name: 'venue', index: 'venue', width: 250 },
{ name: 'solution', index: 'solution', width: 400 },
{ name: 'Method', index: 'Method', width: 300 },
{ name: 'Type', index: 'Type', hidden: true },
{ name: 'delete', index: 'delete', width: 50, formatter: Close, align: 'center' }
],
pager: $('#pager'),
key:true,
rowNum: 10,
rowList: [10, 20, 30, 40],
height: '100%',
viewrecords: true,
caption: '',
sortname: 'Val Name',
sortorder: "desc",
emptyrecords: 'No records to display',
autowidth: true,
multiselect: true,
multiselectWidth: 50,
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
}
});
내가 추가하고 아래 델 방법을 사용하고,
var selRowIdsArray = [];
var myGrid = $("#grid1");
var SelectedGrid = $('#grid2');
//get no of selected rows count
var selRowIds = $("#grid1").jqGrid('getGridParam', 'selarrrow');
if (selRowIds.length !== 0) {
if (selRowIdsArray.length == 0) {
selRowIdsArray.push.apply(selRowIdsArray, selRowIds);
}
for (i = 0; i < selRowIdsArray.length; i++) {
selRowIdsInt = selRowIdsArray[i];
var selRowId = myGrid.getRowData(selRowIdsInt);
SelectedGrid.jqGrid('addRowData', i, selRowId);
myGrid.jqGrid('delRowData', selRowIdsInt);
}
}
명확한 설명을 보내 주셔서 감사합니다. 하지만 난 오류가 발생합니다 : ** "min.js 파일에서"정의되지 않은 "0 속성을 읽을 수 없습니다. 철저하게 검사했지만 이유를 찾지 못했습니다. 지원되지 않는 문제로 인해 그리드에로드 된 것으로 생각됩니다. – Virat
@Virat : ** 현재 어떤 코드를 사용하고 있습니까? ** 오류가 발생하면'.min.js'를 사용하지 마십시오. '.src.js'는 소스 코드의 정확한 행을 보여줄 수 있습니다. 여기서'undefined'의 read 속성 '0'을 얻을 수 있습니다. 현재 사용중인 jqGrid의 버전 (여전히 4.4.4 또는 다른 버전)? 문제를 재현하고 디버깅 할 수있는 온라인 데모가 있습니까? – Oleg