Checkcolumn checkchange 检查总是错误的

Checkcolumn checkchange check always false

我有一个检查列,当列值为 true 并且用户点击它时,它变为 false,但是当列值为 false 并且用户点击它时,它仍然是 false,这是完整代码-

    xtype: 'checkcolumn',
    dataIndex: 'isDeveloper',
    header: "Developer",
    minWidth: 80,
    align: "center",
    reference: "isdeveloper",
    
    listeners: {
        
        checkchange: function (column, rowIndex, checked, record, e, eOpts) {
            this.up('CheckboxTestSummaryView').getController().onCheckChange(column, rowIndex, checked, record, e, eOpts);
        }
    },
    
    renderer: function (value, meta, record, rowIndex, colIndex, store) {
        var cssPrefix = Ext.baseCSSPrefix,
            cls = [cssPrefix + 'grid-checkcolumn-c'];
        if (value=="true") {
            cls = (cssPrefix + 'grid-checkcolumn-c-checked');
        }
        return '<div class="' + cls + '" ></div>';
    }
}

并且在 checkchange 事件中我正在做一个 AJAX 调用

    onCheckChange: function (column, rowIndex, checked, record, e, eOpts) {
    
    var form = Ext.ComponentQuery.query("CheckboxTestSummaryView")[0];
    

    record.commit();
    form.getView().refresh();

    var DataToSave = { _id: record.data._id, Name: record.data.Name, isDeveloper: record.data.isDeveloper == 'true' ? true : false }
    Ext.Ajax.request({
        url: '../api/CheckboxTestSummaryView/Save',
        method: 'POST',
        params: {
            'isDeveloper': JSON.stringify(DataToSave)
        },
        success: function (response) {
            if (response) {
                Ext.Ajax.request({
                    url: '../api/CheckboxTestSummaryView/GetData?xtype=CheckboxTestSummaryView',
                    method: 'GET',
                    params: {
                        
                    },
                    success: function (response) {
                        var res = '';
                        if (response) {
                            res = JSON.parse(response.responseText);
                            form.store.loadData(res.Data);
                        }

                    }
                })
            }
            form.store.reload();
        }
    });
}

但是 checked 的值总是变为 false,true 变为 false,完美,但是 false 变为 true 永远不会。

这个问题跟extjs没有关系,你跟'true'比较一直都是false

此外,渲染器在 checkcolumn 中没有任何意义,您在那里尝试做什么是不需要的,但也令人困惑,cls 可以是数组或字符串,您再次比较字符串 "true".