저는 JQGrid로 약간의 성공을 거두었지만 지금은 데이터를 한 번로드 한 다음 클라이언트 측에서 모든 crud 작업을 수행해야하는 상황에 있습니다. 완전히 붙어있어. 나는 스택 오버 플로우와 구글을 통해 모두 해왔고 단순한 클라이언트 측 jqgrid 연산의 좋은 예제를 찾을 수없는 것처럼 보였다. (틀릴 수도 있지만 공식 jqgrid 워드 프로세서에서 클라이언트 측 항목을 찾을 수 없었다). 은 여기 예제를 활용하는 시도 :jqgrid에서 클라이언트 측 데이터 조작
http://www.ok-soft-gmbh.com/jqGrid/LocalFormEditing.htm
하지만, 난 여전히 아약스/javaxcript/jQuery로 초보자 해요 그리고 다소 압도적이었고, 난 그냥 내 그리드 기능을 가져올 수 없습니다. 튜토리얼에 대한 팁이나 링크를 정말 고맙게 생각합니다. 내 코드와 내가는 과정에 대해 수집 한 지금까지 다음과 같다 :
내가 내 그리드 있습니다editSettings = {
jqModal: false,
reloadAfterSubmit: false,
closeOnEscape: true,
savekey: [true, 13],
closeAfterEdit: true,
onclickSubmit: editSubmit,
height: 200,
width: 400
},
addSettings = {
jqModal: false,
reloadAfterSubmit: false,
savekey: [true, 13],
closeOnEscape: true,
closeAfterAdd: true,
onclickSubmit: addSubmit,
height: 200,
width: 400
},
$('#engineerGrid').jqGrid({
datatype: 'json',
colNames: ['Engineer Name', 'Engineer Type', '% Utilization'],
colModel: [
{name: 'name', index: 'name', width: 150, align: "left", editable: true, edittype: "select",
editoptions: { value: "@(Model.engineerOptions)" }, sorttype: 'string', formatter: 'select'
},
{ name: 'type', index: 'type', width: 150, align: "left", editable: true, edittype: "select",
editoptions: { value: "@(Model.typeOptions)" }, formatter: 'select'
},
{ name: 'ut', index: 'ut', width: 125, align: "left", editable: true, sorttype: 'number', formatter: 'number' }
],
rowNum: 10,
rowList: [5, 10, 20],
pager: '#pager',
gridview: true,
rownumbers: true,
autoencode: true,
ignoreCase: true,
sortname: 'invdate',
viewrecords: true,
sortorder: 'desc',
loadonce: true,
caption: 'Project Engineers',
editurl: 'clientArray',
url: '@Url.Action("EditProjectEngineerJQGridData","Project",new{projID = Model.projectID})'
}).jqGrid('navGrid', '#pager', {}, editSettings, addSettings, delSettings);
});
내가 서버에서 JSON 정보를 얻고을하고 내가 가지고 있기 때문에 생각 loadonce : true set json에서 local로 데이터 유형을 전환해야합니다. 이것은 내가 혼란에 빠지기 시작하는 곳입니다. 모든 중요한 기능을 수동으로 작성하고 onclickSubmit으로 링크해야합니까? 그렇다면 누구나 데이터를 올바르게 가져 오거나 설정하는 방법을 설명 할 의향이 있습니까?
addSubmit = function(){
//I think something needs to go here?
};
편집 :이 보는 사람을 위해 반복 것
생각. 내가 경험이 많지 않기 때문에 이것은 낮은 수준일지도 모르지만 어쩌면 다른 초보자가 평신도의 설명으로부터 도움을받을 수있다. 로컬 데이터로 작업 할 때 양식 편집을 사용할 수 없습니다 (삭제는 제외). 행을 추가/편집하려면 inlineNav를 사용할 수 있습니다. 내가 작동하는 부분은 아래에 있지만, 까다로운 부분이 있지만 로컬 데이터에서 추가/편집/삭제하는 것이 효과적입니다.
$(document).ready(function() {
var myData = [],
editOptions = {},
addOptions = {},
lastSel = -1,
parameters = {
edit: false,
editicon: "ui-icon-pencil",
add: true,
addicon: "ui-icon-plus",
save: true,
saveicon: "ui-icon-disk",
cancel: true,
cancelicon: "ui-icon-cancel",
addParams: { useFormatter: false },
editParams: {}
},
myDelOptions = {
onclickSubmit: function (options, rowid) {
var grid = $('#engineerGrid');
// delete the row
grid.delRowData(rowid);
grid.trigger("reloadGrid", [{ page: 0}]);
return true;
},
processing: true
};
$('#engineerGrid').jqGrid({
datatype: 'json',
url: '@Url.Action("CreateProjectEngineerJQGridData", "Project")',
colNames: ['Engineer Name', 'Engineer Type', '% Utilization'],
colModel: [
{ name: 'name', index: 'name', width: 150, align: "left", editable: true, edittype: "select",
editoptions: { value: "@(Model.engineerOptions)" }, sorttype: 'string', formatter: 'select'
},
{ name: 'type', index: 'type', width: 150, align: "left", editable: true, edittype: "select",
editoptions: { value: "@(Model.typeOptions)" }, formatter: 'select'
},
{ name: 'ut', index: 'ut', width: 125, align: "left", editable: true, formatter: 'number',
formatoptions: { decimalPlaces: '0', defaultValue: '20'}
}
],
rowNum: 20,
rowList: [5, 10, 20],
pager: '#pager',
gridview: true,
rownumbers: true,
autoencode: true,
ignoreCase: true,
sortname: 'invdate',
viewrecords: true,
sortorder: 'desc',
loadonce: true,
width: 750,
caption: 'Project Engineers',
editurl: 'clientArray',
onSelectRow: function (id) {
//if selected row changed restore values of previously selected row
if (id && id !== lastSel) {
jQuery('#engineerGrid').restoreRow(lastSel);
lastSel = id;
}
jQuery('#engineerGrid').editRow(id, true);
}
}).jqGrid('navGrid', '#pager', { edit: false, add: false, del: true }, editOptions, addOptions, myDelOptions);
jQuery("#engineerGrid").jqGrid('inlineNav', '#pager', parameters);
});
어쨌든 도움 주셔서 감사합니다!
답변을 주셔서 대단히 감사합니다! 괜찮 으면 나는 당신을 올바르게 이해하고 있는지 확인하고 싶습니다. 로컬 데이터는 양식 편집이 지원되지 않습니다. 맞춤 코드를 작성하여 수행 할 수는 있지만 이는 어렵습니다. 로컬 데이터에 추가/삭제/편집을 허용하려면 행 편집과 로컬 데이터에 지원되는 새 행 삽입을 위해 인라인 편집을 사용하여이 작업을 수행 할 수 있습니다. 로컬 데이터를 삭제할 때 navGrid를 사용할 수 있습니다. –
@ JohnPires : 환영합니다! 당신이 나를 완전히 이해한다고 생각합니다. 우리가 사용하는 "지원되는"이라는 말은 무료로 제공되는 오픈 소스 제품에 대해 말하기 때문에 아마 완전하지 않을 수 있습니다. 나는 'processing : true'와 같은 "internals"의 사용이 다음 버전에서는 작동하지 않을 것이라는 사실을 대부분 의미하지만, 이전에 더 많이 게시 한 코드는 여전히 실행됩니다. 따라서 요구 사항과 현재 프로젝트에 어느 쪽이 더 나은지 자신을 결정해야합니다. – Oleg