如何为dojox.grid.cells.dijit创建一个新的小部件?

时间:2010-03-25 22:51:30

标签: dojo dojox.grid

我正在尝试为dojox.grid创建一个按钮小部件 我的问题是:
1)只有双击网格时才会显示该按钮 2)我无法弄清楚如何通过声明性标记设置属性。似乎markupFactory函数负责它,但它没有设置小部件的标签。 以下代码演示了到目前为止我所拥有的内容:

dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dijit.form.Button");
dojo.require("dojox.grid.cells.dijit");
dojo.require("dojo.parser");
dojo.declare("dojox.grid.cells.Button", dojox.grid.cells._Widget, {
    widgetClass: dijit.form.Button,
    alwaysEditing: true,
    constructor: function(inCell)
    {
    this.inherited(arguments);
    this.widget = new dijit.form.Button;
    },
    setValue: function(inRowIndex, inValue){
    if (this.widget) {
                this.widget.attr('value', inValue);
            }
            else {
                this.inherited(arguments);
            }
    }
});

dojox.grid.cells.Button.markupFactory = function(node, cell)
{
    dojox.grid.cells._Widget.markupFactory(node, cell);
}

1 个答案:

答案 0 :(得分:2)

For 1)只有在双击网格时才会显示该按钮。

在Grid参数中设置singleClickEdit:true

this.grid = new dojox.grid.DataGrid({
    singleClickEdit: true,
    structure: view1,
}, tmp);