复选框(dojox.grid.cells.Bool)提交两次

时间:2013-09-23 05:31:17

标签: dojo dojox.grid.datagrid dojo-1.6

我有一个包含多个列的表单,其中一个是复选框,它会在单击复选框本身时发送两个表单提交并导致数据库锁定。

的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'的替代品?

2 个答案:

答案 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)
                             }
            });
    } 

这应该有用。