0 इनमें इनलाइन ऐड बटन का उपयोग करके पंक्ति को जोड़ा गया है तो डिफ़ॉल्ट मान कैसे सेट करें यदि पंक्ति का उपयोग करके पंक्ति जोड़ा गया है तो नीचे पंक्ति कोड नई पंक्ति के लिए डिफ़ॉल्ट मान सेट करता है। यदि टूलबार से jqGrid इनलाइन ऐड बटन का उपयोग करके पंक्ति जोड़ा जाता है, तो उन विधियों को नहीं कहा जाता है और डिफ़ॉल्ट मान सेट नहीं होते हैं।यदि jqgrid
नीचे कोड के रूप में समान तर्क करने के लिए इनलाइन जोड़ने को कैसे मजबूर किया जाए?
var lastSelectedRow;
$grid.navGrid("#grid_toppager", {
del: true,
add: true,
view: true,
edit: true
},
{},
{
addedrow: 'beforeSelected',
url: '/Grid/Add?_entity=Desktop',
beforeInitData: function() {
// todo: how to call this method from inline add
var rowid = $grid.jqGrid('getGridParam', 'selrow');
if (rowid === null) {
alert('Select row before adding');
return false;
}
},
afterShowForm: function(formID) {
// todo: how to set default values as this method sets from inline add
var selRowData,
rowid = $grid.jqGrid('getGridParam', 'selrow');
$('#' + 'Recordtype' + '.FormElement').val('Veerg');
$('#' + 'Nait2' + '.FormElement')[0].checked = true;
selRowData = $grid.jqGrid('getRowData', rowid);
$('#' + 'Baas' + '.FormElement').val(selRowData.Baas);
$('#' + 'Liigid' + '.FormElement').val(selRowData.Liigid);
}
);
$grid.jqGrid('inlineNav', '#grid_toppager', {
addParams: {
position: "beforeSelected",
rowID: '_empty',
useDefValues: true,
addRowParams: {
keys: true,
onEdit : onInlineEdit
}
},
editParams: {
editRowParams: {
onEdit : onInlineEdit
}
},
add: true,
edit: false,
save: true,
cancel: true
});
function onInlineEdit(rowId) {
if (rowId && rowId !== lastSelectedRow) {
cancelEditing($grid);
lastSelectedRow = rowId;
}
}
अद्यतन
मैं कोड
$grid.jqGrid('inlineNav', '#grid_toppager', {
addParams: {
position: "beforeSelected",
rowID: '_empty',
useDefValues: true,
addRowParams: {
keys: true,
extraparam: { _dokdata: FormData },
onSuccess : function (jqXHR) {
alert('addp oncuss');
jqXHRFromOnSuccess=jqXHR;
return true;
},
afterSave: function (rowID) {
alert('afeesave addp ');
cancelEditing($grid);
afterDetailSaveFunc(rowID,jqXHRFromOnSuccess);
jqXHRFromOnSuccess=null;
},
onError: errorfunc,
afterRestore : setFocusToGrid,
oneditfunc : function (rowId) {
var selRowData, selRowId ;
if (rowId && rowId !== lastSelectedRow) {
cancelEditing($grid);
selRowId = $grid.jqGrid('getGridParam', 'selrow');
if (selRowId) {
selRowData = $grid.jqGrid('getRowData', selRowId);
$('#' + rowId + '_Reanr').val(selRowData.Reanr);
}
lastSelectedRow = rowId;
}
}
}
}
);
केवल oneditfunc समारोह कहा जाता है की कोशिश की। सिक्योर, ऑनसेव, ऑनर इत्यादि पर बल कैसे लगाया जाए? जवाब में सिफारिश की और
$.extend(jQuery.jgrid.inlineEdit, {
addParams: {
position: "beforeSelected",
rowID: '<%= EntityBase.NewRowIdPrefix %>',
useDefValues: true,
addRowParams: {
keys: true,
extraparam: { _dokdata: FormData },
onSuccess : function (jqXHR) {
jqXHRFromOnSuccess=jqXHR;
return true;
},
afterSave: function (rowID) {
cancelEditing($grid);
<% if (Model is RowBase) { %>
afterDetailSaveFunc(rowID,jqXHRFromOnSuccess);
<% } else { %>
afterGridSaveFunc(rowID,jqXHRFromOnSuccess);
<% } %>
jqXHRFromOnSuccess=null;
},
onError: errorfunc,
afterRestore : setFocusToGrid,
oneditfunc : function (rowId) {
if (rowId && rowId !== lastSelectedRow) {
cancelEditing($grid);
lastSelectedRow = rowId;
}
}
}
}
});
की कोशिश की
अद्यतन 2
मैं GitHub से jqGrid के लिए पैच जोड़ा मैं इस मामले दर्ज इनलाइन जोड़ने समाप्त नहीं करता। इस कोड के सभी पैरामीटर अनदेखा कर रहे हैं।
आपको बहुत बहुत धन्यवाद। प्रश्न में कोड वर्तमान पंक्ति से डिफ़ॉल्ट मान पुनर्प्राप्त करता है और वर्तमान पंक्ति सेट नहीं होने पर पंक्ति जोड़ने की अनुमति नहीं देता है। डिफ़ॉल्ट वैल्यू का उपयोग करके इसे कैसे कार्यान्वित करें? – Andrus
@Andrus: बिल्कुल कोड अलग-अलग चीजें करें। '$ ('#' + 'रिकॉर्डटाइप' + 'फॉर्म एलिमेंट') जैसी लाइनें। वैल ('वेर्ज');' और '$ ('#' + 'नैट 2' + 'फॉर्म एलेमेंट') [0]। चेक = सत्य; 'डिफ़ॉल्ट मानों की शुद्ध सेटिंग हैं। अन्य सेटिंग्स के कारण मुझे समझ में नहीं आता कि आप 'ऑनएडिट' हैंडलर के अंदर सेटिंग्स क्यों नहीं करते हैं (आपके मामले में 'onInlineEdit' फ़ंक्शन में)? – Oleg
मुझे वर्तमान पंक्ति से मूल्य प्राप्त करने की आवश्यकता है। मुझे नहीं पता कि वर्तमान पंक्ति मानों को InlineEdit में कैसे प्राप्त करें। शायद वर्तमान में पहले से ही पंक्ति जोड़ा गया है, पिछली पंक्ति मान प्राप्त करने का कोई तरीका नहीं है। अगर कोई वर्तमान पंक्ति नहीं है, तो इनलाइन शॉउडल को अवरुद्ध कर दें। onInlineedit कैंसड ऑपरेशन को जोड़ने की अनुमति नहीं देता है, नई पंक्ति पहले ही जोड़ दी गई है। – Andrus