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"
.
我有一个检查列,当列值为 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"
.