如何在dojo网格单元格中添加多个按钮

时间:2012-11-22 06:55:20

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

我是dojo的新手,我正在尝试将一些按钮放入datagrid单元格中。我阅读了文档并成功使用formatter将一个按钮放入网格中:

{
    name: "oper",
    field: "id",
    type: dojox.grid.cells._Widget,
    editable: false,
    formatter: function(id){
        return new Button({
            label:"oper",
            onClick: function(){
                    oper(id);
            }
        });
    }

}

我的问题是如何将两个或两个以上的按钮放入单元格。 非常感谢。

2 个答案:

答案 0 :(得分:1)

这是一个关于dojo Datagrids的反复出现的问题。             这里的主要问题是行格式化器通常返回一个dijit小部件             或者是一个HTML。我找到并测试了一种简单的方法来克服这个问题。
            1.为您的小部件创建div持有者。 E.g var holderDiv = dojo.toDom(“”);
            2.动态创建你的wigets,例如var editBtn = new dijit.form.Button({...});
                var saveBtn = new dijit.form.Button({...});
                var deleteBtn = new dijit.form.Button({...});
            3.将小部件放在支架div内             4.返回持有者div的innerHtml。

        **Hier is the full code:**
        function controlBtnsFormatter(data, rowIndex) {
            var holderDiv = dojo.toDom("<div></div>");
            var editBtn = new dijit.form.Button({...});
            var saveBtn = new dijit.form.Button({...});
            var deleteBtn = new dijit.form.Button({...});
            // destroy them on remove
            editBtn._destroyOnRemove = true;
            saveBtn._destroyOnRemove = true;
            deleteBtn._destroyOnRemove = true;
            // place buttons inside div
            editBtn.placeAt(holderDiv);
            saveBtn.placeAt(holderDiv);
            deleteBtn.placeAt(holderDiv);

            return holderDiv.innerHTML;

        }

答案 1 :(得分:0)

在格式化程序功能中,创建一个div并在div中添加所有按钮并返回创建的div

formatter: function(id){
    var result = "<div>"
    //add all your buttons in the div, you can also apply some styles

    result += "</div>";
}