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

发布于 2024-08-26 19:08:38 字数 953 浏览 4 评论 0原文

我正在尝试为 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);
}

I am trying to create a button widget for dojox.grid.
My problems are:
1) The button is only shown when I double click the grid.
2) I can't figure out how to set attributes through declarative markup. It seems that the markupFactory function is responsible for it but it doesn't set the widget's label.
The following code demonstrates what I've got so far:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深海少女心 2024-09-02 19:08:38

1)仅当我双击网格时才会显示该按钮。

在 Grid 参数中设置 singleClickEdit: true

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

For 1) The button is only shown when I double click the grid.

Set singleClickEdit: true in the Grid parameters

this.grid = new dojox.grid.DataGrid({
    singleClickEdit: true,
    structure: view1,
}, tmp);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文