javascript - Dojo Dgrid 行选择不起作用并检索 dgrid 选择器的值?

标签 javascript dojo dgrid

目前,我正在使用带有选择框、文本框和两个复选框的 Dojo dgrid,但我无法禁用整行选择,而且当我单击第二个复选框时,dgrid 选择和取消选择不起作用,并且它反射(reflect)了第一个复选框.

1.如何在dojo Dgrid中禁用整行选择? 2.点击保存时如何获取Dgrid选择框和Dgrid文本框的值? 3.如果我使用选择器(复选框),我无法渲染该列的标签?

var columns = {                 
    person :{
     sortable: false,
        renderCell: lang.hitch(this, function(object,value,node) {
            if(value == true){
                myTextBox = new dijit.form.TextBox({
                    name: "Amount",
                    value: "" ,
                    placeHolder: "Enter Amount"
                }).placeAt(node);                                   
            }
        })                          
    },
    description:{
        label:"description",
        field:"description",
        sortable: false,
        renderCell : lang.hitch(this, function(object,
                value, node, options) {             
            new Select({
                name : "select",
                options : [ {
                    label : "Daily",
                    value : "daily"
                }, {
                    label : "Weekly",
                    value : "weekly",                                   
                }]
            }).placeAt(node);

        }),

    },
    email : selector({
        sortable:false,
        field:"email"
    })
    /*i tried this instead of using selectors inserting a checkbox so that i can remove complete row selection but not working*/
    email: {
        sortable:false, 
        field:"email",
        renderHeaderCell : function(node) {
            var cellDiv = domConstruct.create("label", {
                innerHTML : "Email"
            }, node);                           
                var checkBox = new CheckBox({
                    name: "checkBox",
                    id:"emailAddress",
                    checked: false,             
            }, cellDiv);
        },
        renderCell:createMessageLabel                                           
    }   

};  

function createMessageLabel(object,value, node,options){
    console.log("node option",node);
        var checkbox = new CheckBox({
        name: "checkBox",
        id:"emailAddress",
        checked: false,                         
    }).placeAt(node);                   
};



var grid = new GridView().show(gridData, columns, "",
        "dgridAutoHeight", true);
function addSelection(self, event) {

    console.log("Row selected: ", event.rows[0].data);
}
function removeSelection(self, event) {

    console.log("Row deselected: ", event.rows[0].data);
}
grid.startup();


grid.on("dgrid-select", lang.hitch(grid, addSelection, this), true);
grid.on("dgrid-deselect", lang.hitch(grid, removeSelection, this), true);

希望我能得到一些有值(value)的答案......

最佳答案

要禁用直接选择,请在传递给构造函数的属性中设置selectionMode: "none"。这不会影响通过选择器列进行的选择。

您应该仍然可以通过设置传递给selector列插件的对象中的label属性来设置选择器列的标题单元格中的标签。

如果您想使用 Dijit 表单小部件来更改项目中字段的值,您可能不应该自己定义 renderCell 函数,而应使用 editor column plugin ,它的作用是维护数据状态,并在您调用 save 时将其放回存储中。

关于javascript - Dojo Dgrid 行选择不起作用并检索 dgrid 选择器的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651444/

相关文章:

javascript - 在node.js下使用dojo 1.8 dojo/request失败并出现TypeError : Object has no method 'substring'

javascript - Dojo 菜单栏选定状态

javascript - dojo dgrid 中的非区分大小写排序

javascript - Vista x64,小工具开发,OLEDB 错误 : "provider cannot be found"

javascript - Charts.JS - 图表太多? - 加载问题

javascript - 如何将 smooth-scrollbar 与其他插件对齐?

javascript - dojo editable-tree-dgrid : create or generate a new row supported in the dojo. store.JsonRest?

javascript - "Attribute hash",那是什么?

jquery - 如何将外部 html 文件嵌入到当前 html 文件但没有 iframe 标签

javascript - 如何让工作网格显示来自 ajax 的数据源?