需要帮助将addtional editURL数据发送到服务器。下面是我的代码,但它无法正常工作
progGrid.jqGrid({
url : rootURLProgExecList,
editurl : '/ProgGrid.php',
editData : {'action':'weekID','userID':userID},
mtype : "POST",
postData : {'action':'weekID','userID':userID},
datatype : "JSON",
page : 1,
regional : lang,
colNames : progWeekColName[lang],
colModel : [
{ name: 'userID', width: 25, hidden: true },
{ name: 'weekID', key: true, editable: true, width: 20, editrules : { required: true, integer:true, minValue:1} },
],
loadonce : true,
autowidth : true,
height : 445,
rowNum : 20,
caption : progGridCaption,
subGrid : true, // set the subGrid property to true to show expand buttons for each row
subGridRowExpanded : showChildGrid, // javascript function that will take care of showing the child grid
subGridOptions : {
expandOnLoad: false, // expand all rows on load
plusicon : "fa fa-plus-circle",
minusicon : "fa fa-minus-circle"
},
subGridBeforeExpand: function(divid, rowid) {
var expanded = jQuery("td.sgexpanded", "#progGrid")[0];
if(expanded) {
setTimeout(function(){
$(expanded).trigger("click");
}, 100);
}
},
shrinkToFit : true,
sortorder : "asc",
hidegrid : false,
gridview : true,
pgbuttons : false, // disable page control like next, back button
pgtext : null,
viewrecords : true,
recordtext : '{0}-{1} / {2}',
pager : progGridPager
})
.navGrid(progGridPager, {edit: false, add: false, del: false, refresh: true, view: false, search:false})
.inlineNav(progGridPager,{edit: true, add: true, del: true, cancel: true, refresh : true,
editParams: {keys: true},
addParams : {keys: true}});
// the event handler on expanding parent row receives two parameters
// the ID of the grid tow and the primary key of the row subgrid_id
function showChildGrid(parentRowID, parentRowKey) {
var childGridID = parentRowID + "_day";
var childGridPagerID = parentRowKey + "_pager";
// send the parent row primary key to the server so that we know which grid to show
// add a table and pager HTML elements to the parent grid row - we will render the child grid here
$('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');
$("#" + childGridID).jqGrid({
url : rootURLProgExecList,
editurl : '/ProgGrid.php',
editData : {'action':'day', 'userID':userID,'weekID' : parentRowKey},
mtype : "POST",
postData : {'action':'day','userID':userID,'weekID' : parentRowKey},
datatype : "json",
page : 1,
regional : lang,
caption : progWeekCaption[lang],
colNames : progDayColName[lang],
colModel : [
{ name: 'week_ID', width: 75, hidden: true },
{ name: 'dayID', key: true, width: 100, editable:true, editrules : { required: true, integer:true, minValue:1, maxValue:7}, },
],
loadonce : true,
autowidth : true,
//width : 500,
height : '100%',
subGrid : true, // set the subGrid property to true to show expand buttons for each row
subGridRowExpanded: showThirdLevelChildGrid, // javascript function that will take care of showing the child grid
subGridOptions : {
expandOnLoad: false, // expand all rows on load
plusicon: "fa fa-plus-circle",
minusicon: "fa fa-minus-circle"
},
subGridBeforeExpand: function(divid, rowid) {
// #grid is the id of the grid
var expanded = jQuery("td.sgexpanded", "#" + childGridID )[0];
if(expanded) {
setTimeout(function(){
$(expanded).trigger("click");
}, 100);
}
},
shrinkToFit : true,
sortorder : "asc",
hidegrid : true,
gridview : true,
pgbuttons : false, // disable page control like next, back button
pgtext : null,
viewrecords : true,
recordtext : '{0}-{1}/{2}',
pager: '#' + childGridPagerID
})
.navGrid('#' + childGridPagerID, {edit: false, add: false, del: false, refresh: true, view: false, search:false})
.inlineNav('#' + childGridPagerID,{edit: true, add: true, del: true, cancel: true, refresh : true, editParams: {keys: true,}, addParams: {keys: true}});
}
我尝试将其他数据添加到addParams和editParams中 addParams:{keys:true,{&#39; action&#39;:&#39; weekID&#39;,&#39; userID&#39;:userID}} editParams:{keys:true,{&#39; action&#39;:&#39; weekID&#39;,&#39; userID&#39;:userID}}没有运气。
任何帮助将不胜感激
答案 0 :(得分:2)
首先,addParams
选项应该是
addParams: {addRowParams: {keys: true}}
而不是
addParams : {keys: true}
要在内联编辑期间添加更多自定义数据,例如{'action':'weekID','userID':userID}
,您可以使用extraparam
:
.navGrid(progGridPager, {edit: false, add: false, del: false, search: false})
.inlineNav(progGridPager, {
editParams: {keys: true, extraparam: {action:'weekID', userID:userID}},
addParams: {addRowParams:{keys:true,extraparam:{action:'weekID',userID:userID}}}});
我看到你使用Guriddo jqGrid JS。我开发了jqGrid的替代fork:free jqGrid(当前版本是4.12.0)。它支持简化形式的提供选项,如the wiki article中所述。如果您使用这些选项,您可以减少代码并简化它。
我会严格建议您至少对子网格使用idPrefix
选项。例如,您可以使用idPrefix: "s_" + parentRowKey + "_"
。防止id重复是非常重要的。