如何在dojo数据网格中显示一个复选框?

时间:2010-07-11 11:32:18

标签: dojo

如何在dojo数据网格中显示复选框?

6 个答案:

答案 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

这样的东西

HTML

<table id="myGrid" dojoType="dojox.grid.DataGrid"
               clientSort="true" autoHeight="true" autoWidth="true">
            <script type="dojo/method">
                showFields();
            </script>
</table>

DOJO

    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>