gpt4 book ai didi

javascript - jqGrid - 在 "edit"上禁用内联下拉菜单,但不在 "add"上禁用内联下拉菜单

转载 作者:行者123 更新时间:2023-12-03 11:23:55 25 4
gpt4 key购买 nike

看起来这个问题至少被问过once before但没有得到答复。我还看到这个问题关于基于标准“表单”的编辑的回答,但不是内联的。

代码

$(function() {
var lastSel;
var MSVendors = {'9990':'XXXXXX - LEXI','9991':'XXXXXX - RICH','9992':'XXXXXX - BIRM','9993':'XXXXXX - PEMB' };
$('#special_dialog').dialog({
width:'auto',
height:'auto',
resizable:true
});
$.extend($.jgrid.defaults,{
rowNum:250,
rowList:[1000,2500,5000],
viewrecords:true,
sortorder:'asc',
height:800,
autowidth:true,
deepempty:true,
altRows: true,
grouping: true,
groupingView: {
groupField: ["vendor"],
groupColumnShow: [true],
groupText: ["<b>WAREHOUSE : {0}</b>"],
groupDataSorted: true,
groupSummary: [false]
}
});
var surplusGrid = $('#surplusGrid'),
editingRowId,
sEditParam = {
keys: true,
oneditfunc: function(id) {
editingRowId = id;
$('#surplusGrid_ilsave').removeClass('ui-state-disabled');
$('#surplusGrid_ilcancel').removeClass('ui-state-disabled');
},
afterrestorefunc: function() {
editingRowId = undefined;
}
},
sAutoCompOpts = {
source: function(request, response) {
$.getJSON('/json/json.searchmultiMaterials.php',{term:request.term,type:'m'},function(data) {
response(data);
});
},
minLength: 3,
focus: function(e,ui) {
$('input:text[name="description"]').val(ui.item.description);
$('input:text[name="vendor"]').val(ui.item.vendor);
$('input:text[name="mfgr_partno"]').val(ui.item.mfgr_partno);
},
select: function(e,ui) {
$('input:text[name="description"]').val(ui.item.description);
$('input:text[name="vendor"]').val(ui.item.vendor);
$('input:text[name="mfgr_partno"]').val(ui.item.mfgr_partno);
}
},
sAddParam = {
rowID: 'new',
position:'last'
};
surplusGrid.jqGrid({
url: '/json/json.getSurplusStock.php',
datatype:'json',
emptyrecords: 'Surplus Stock is currently depleted!',
colNames: ['ID','Type','Part#','Description','On-Hand','On-Order','On-Hold','Min Stock','Warehouse','Shelf','Bin'],
colModel: [
{ name:'id',
index:'id',
hidden:true,
key:false,
search:false,
viewable:false
},
{ name:'type',
index:'type',
width:35,
sortable:true,
editable:false,
align:'center',
editoptions:{defaultValue:'B'},
cellattr: function(rowId,val) {
if (val == 'B') {
return 'class="blue_stock"';
} else {
return 'class="gold_stock"';
}
}
},
{ name:'surplus_partno',
index:'surplus_partno',
width:140,
sortable:false,
editable:true,
classes:'ui-ellipsis',
edittype:'text',
editoptions:{size:25},
editrules:{required:true}
},
{ name:'description',
index:'description',
width:200,
sortable:false,
align:'left',
editable:true,
classes:'ui-ellipsis',
edittype:'text',
editoptions:{size:40},
editrules:{required:true}
},
{ name:'on_hand',
index:'on_hand',
width:60,
sortable:false,
editable:true,
align:'center',
edittype:'text',
editoptions:{size:6},
editrules:{required:true,integer:true,minValue:0}
},
{ name:'on_order',
index:'on_order',
width:60,
sortable:false,
editable:true,
align:'center',
edittype:'text',
editoptions:{size:6},
editrules:{required:false,integer:true,minValue:0}
},
{ name:'on_hold',
index:'on_hold',
width:60,
sortable:true,
editable:true,
align:'center',
edittype:'text',
editoptions:{size:6},
editrules:{required:true,integer:true}
},
{ name:'min_threshold',
index:'min_threshold',
width:60,
sortable:true,
editable:true,
align:'center',
edittype:'text',
editoptions:{size:6},
editrules:{required:true,integer:true,minValue:0}
},
{ name:'vendor',
index:'vendor',
width:120,
editable:true,
align:'center',
editoptions:{value:MSVendors},
edittype:'select',
editrules:{required:true,integer:true}
},
{ name:'shelf',
index:'shelf',
width:40,
sortable:true,
editable:true,
align:'center',
editoptions:{size:10}
},
{ name:'bin',
index:'bin',
width:40,
sortable:true,
editable:true,
align:'center',
editoptions:{size:10}
}
],
pager:'#surplusFoot',
sortname:'b.id',
caption:'Surplus Stock Inventory',
onSelectRow: function(id) {
if(id && id !== lastSel) {
surplusGrid.jqGrid('restoreRow',lastSel);
var cm = surplusGrid.jqGrid('getColProp','vendor');
if (id != 'new') { cm.editable = false; }
lastSel = id;
}
surplusGrid.jqGrid('editRow',id,true);
$('#surplusGrid_ilsave').removeClass('ui-state-disabled');
$('#surplusGrid_ilcancel').removeClass('ui-state-disabled');
},
editurl:'/jqg/jqg.saveSurplusStockEdit.php'
});
surplusGrid.jqGrid('navGrid','#surplusFoot',{
add:false,
edit:false,
del:false
});
surplusGrid.jqGrid('inlineNav','#surplusFoot',{
add:true,
edit:true,
editParams:sEditParam,
addParams:sAddParam
});
// re-size all grids when dialog box resizes
$('#special_dialog').dialog({
resizeStop: function(e,ui) {
surplusGrid.jqGrid('setGridWidth', ui.size.width - 30);
}
});

});

在内联 ADD 上效果很好 - 出现下拉列表,并且值按预期传递到编辑 URL。然而,在内联编辑中,整个下拉列表消失,留下“ ”作为单元格内容,而不是网格最初加载时存在的值。

最佳答案

inlineNav的用法是内联编辑的一个特例,因为editRow将被调用。从jqGrid 4.5.3开始内联编辑支持beforeEditRowbeforeAddRow引入回调主要是为了在使用时提供额外的自定义inlineNav 。方法beforeEditRow比较有趣,因为无论调用editRow的方式都会被调用.

在提供使用示例之前beforeEditRow我想说你必须修复 sAddParam 中的错误,您可以将其用作 addRow 的选项。您使用了不需要的危险参数rowID: 'new' 。结果每个新行的 id 都是相同的:“new”。这样你就会有 id 重复项。 jqGrid 的早期版本也存在同样的问题。当前版本的jqGrid使用$.jgrid.randId()为新添加的行生成新的唯一 id if rowIDnullundefined 。默认值rowIDnull 。所以我强烈建议您删除 rowID: 'new'选项。

下一个重要的事情是 addParams 的含义inlineNav的选项。方法addRow内部调用相同editRow方法。 addRowParams addParams的属性(property)允许指定 editRow 选项调用 addRow 。所以我强烈建议您使用addParams格式如下

var sEditParam = {
... // any options or callbacks
},
sAddParam = {
position: 'last',
addRowParams: sEditParam
};

这样,您将确保即使在使用 addRow 的情况下,也会应用内联编辑的所有回调和选项。 .

现在回到你的主要问题。我建议您使用beforeEditRow更改editable vendor的属性(property)柱子。要测试当前行是否只是添加,我建议测试 jqgrid-new-row 是否存在类(class)。相应的代码可能如下所示

var sEditParam = {
beforeEditRow: function (option, rowid) {
var tr = $(this).jqGrid("getGridRowById", rowid);

$(this).jqGrid("setColProp", "vendor", {
editable: !$(tr).hasClass("jqgrid-new-row")
});
}
};
surplusGrid.jqGrid("inlineNav", "#surplusFoot", {
add: true,
edit: true,
editParams: sEditParam,
addParams: {position: "last", addRowParams: sEditParam}
});

关于javascript - jqGrid - 在 "edit"上禁用内联下拉菜单,但不在 "add"上禁用内联下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26997967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com