事件没有为dojo的DataGrid触发

时间:2012-09-27 08:21:24

标签: javascript ajax dojo

我有一个连接到某个商店的DataGrid。我希望它在更改后立即保存。

只有一个可编辑列,其中3个选项下拉列表设置为始终编辑定义如下:

                <table data-dojo-type="dojox.grid.EnhancedGrid" id="leaveGrid" data-dojo-id="leaveGrid"
                     selectable=false singleClickEdit="true">
                <thead>
                    <tr>
                        <th field="TITLE" width="25%">Title</th>
                        <th field="REQUESTEDON" width="15%">Requested</th>
                        <th field="CODE" width="15%">Code</th>
                        <th field="LEAVEDATE" width="15%">Leave Date</th>
                        <th field="HRS" width="15%">Hours</th>
                        <th field="STATUS" width="15%" editable="true" alwaysEditing="true" cellType="dojox.grid.cells.Select" options='<?php echo $this->statusOptions;?>'>Status</th>
                    </tr>
                </thead>
            </table>

下拉列表的选项由php填充,但这应该不是问题。

我建立了以下连接:

dojo.connect(gridStore, 'onSet', saveStore);

用于处理商店的保存。

现在问题是我点击下拉列表,更改选项并且......没有任何反应。除非我点击输入或点击屏幕上的其他地方(如果你愿意改变焦点或选择),任何事件都不会触发;只有这样才会引发事件。

我应该使用不同的活动吗?如果用户更改此数据并且无需进一步交互,我该怎么做才能保存这些数据?

1 个答案:

答案 0 :(得分:0)

你可以在这里做几件事:

1)使用onClick而不是onSet

2)使用需要Enter键或模糊的onApplyCellEdit事件。您可以向用户显示有关如何使用内联编辑的工具提示

3)检查网格生成的html并将处理程序附加到select下拉列表的id / class / name