我是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);
}
});
}
}
我的问题是如何将两个或两个以上的按钮放入单元格。 非常感谢。
答案 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>";
}