如何在dojo数据网格中显示复选框?
答案 0 :(得分:8)
我建议将cellType设置为dojox.grid.cells.Bool,而不是formatter。格式化程序为您提供了很大的自由,但也负责从之后的所有复选框(对于所有行)收集数据。像这样的结构条目应该可以解决这个问题:
{
name: "is awesome?",
width: "auto",
styles: "text-align: center",
type: dojox.grid.cells.Bool, editable: true
}
请确保使用书面商店(如ItemFileWriteStore)而不仅仅是读取商店,否则您将被禁用以实际选中复选框:)
答案 1 :(得分:3)
使用格式化程序功能,如Widgets Inside dojo.DataGrid中所述 您可以从dojo 1.4
中的formatter函数返回新的dijit.form.Checkbox答案 2 :(得分:2)
你需要EnhancedGrid的IndirectSelection插件,这里有一个小提琴:http://jsfiddle.net/raybr/w3XpA/5/
答案 3 :(得分:1)
你可以使用Json
这样的东西<table id="myGrid" dojoType="dojox.grid.DataGrid"
clientSort="true" autoHeight="true" autoWidth="true">
<script type="dojo/method">
showFields();
</script>
</table>
showFields:function () {
dojo.xhrPost({
url:"/getFields.do",
timeout:2000,
handleAs:"json",
load:dojo.hitch(this, "displayInGrid")
});
},
displayInGrid:function (jsonResult) {
var dataStore = new dojo.data.ItemFileReadStore(
{ data:jsonResult }
);
var checkboxLayout = [
[
{name:'ID', field:"id" },
{name:'Value', field:"id", formatter:this.addCheckBox}
]
];
var grid = dijit.byId("myGrid");
grid.setStructure(checkboxLayout);
grid.setStore(dataStore);
},
addCheckBox:function (val) {
var checkbox = "<input type='checkbox' name='myfields' value='" + val + "/>";
return checkbox;
},
答案 4 :(得分:0)
如果您尝试在网格的每一行上显示一个复选框选择器,您可以按照本教程
进行操作http://dojotoolkit.org/documentation/tutorials/1.8/working_grid/demo/selector.php
答案 5 :(得分:0)
如果单元格的类型是布尔值,则其值显示为字符串true或false。如果需要
check box
,则将cellType设置为dojox.grid.cells.Bool
并将其标记为可编辑将显示一个复选框。
http://dojotoolkit.org/reference-guide/1.9/dojox/grid/DataGrid.html#editing-cells
从标记中,为此获得所需结果:
<th field="booleanField" cellType="dojox.grid.cells.Bool" editable="true">Checkbox field</th>