我有一个包含多个列的表单,其中一个是复选框,它会在单击复选框本身时发送两个表单提交并导致数据库锁定。
的index.jsp:
var gridLayout = [
...
{name:"Recurring", field:"isRecurring", type: dojox.grid.cells.Bool, width: "50px",editable:true}
...
]
var grid = new dojox.grid.DataGrid({
id: 'grid',
store: myStore ,
structure: gridLayout
});
dojo.connect(grid, 'onApplyCellEdit', function (a,index,c) { submit(index) } );
是否有'onApplyCellEdit'的替代品?
答案 0 :(得分:1)
今天我遇到了同样的问题。
道场的官方回应:
不推荐使用DojoX Grid和EnhancedGrid,而选择dgrid和 为gridx。您应该升级代码以使用这两个网格中的一个。我们 会考虑旧的DojoX网格代码的补丁。
请参阅THIS了解解决方法。我还没试过。
答案 1 :(得分:1)
user1189762说的是真的,但我认为还有另一种方法。
您可以在布局中使用formater
var layout = [[
{ 'name': 'Column 1', 'field': 'id', hidden: true },
{ 'name': 'Name', 'field': 'name', 'width': '200px' },
//This is the formatter for the Checkboix attribute so it can be in the middle in the start or wherever you need it
{ 'name': 'Delete Mapping', 'field': '_item', 'width': '175px', formatter: checkBoxFormatter },
{ 'name': 'Note', 'field': 'note', hidden: true },
{ 'name': 'mappings', 'field': 'mappingelements', hidden: true }
]];
function checkBoxFormatter(value, rowIndex)
{
var checkBox = new CheckBox({
checked: false,
onChange: function(b){
//The value is whatever you want the two parameter value and rowindex will get the row value or the row index
submit(value)
}
});
}
这应该有用。