gpt4 book ai didi

Extjs : How to enable/disable a checkbox using renderer while loading a grid

转载 作者:行者123 更新时间:2023-12-03 18:26:01 26 4
gpt4 key购买 nike

我需要根据我得到的查询结果加载一个网格。我在加载网格中的文本字段时没有任何问题,但有一个特定的列是复选框类型。为此,我正在使用 xtype: 'checkcolumn'。返回查询结果的对象为此特定列返回“Y”或“N”。如果它是“Y”,我需要启用复选框,如果它是“N”,复选框应该被禁用。
我正在使用以下代码来定义我的复选框字段。

 {
xtype: 'checkcolumn',
header: "Old User",
disabled: true,
disabledCls:'x-item-enabled',
width: 170,
dataIndex: 'oldUser',
itemId: 'oldUser',
renderer: this.checkOldUser
}

checkOldUser: function (oldUser) {
if(oldUser== 'Y'){
this.oldUser.setDisabled(false);
}
}

这个渲染器功能对我不起作用。渲染器应该是什么样子?你能告诉我如何解决这个问题吗?谢谢....

最佳答案

哇,我以为这会更容易,但事实证明......不是那么多......

你必须做两件事:

1 - 更改您的 checkcolumn 渲染器

2 - 添加一个 beforecheckchange 监听器以在用户单击值为“N”的记录时返回 false;

您的最终网格应如下所示:

Ext.create('Ext.grid.Panel', {
height: 250,
width: 579,
title: 'My Grid Panel',
defaultListenerScope: true,
store: myStore,
columns: [
{
xtype: 'gridcolumn',
dataIndex: 'name',
text: 'Name'
},
{
xtype: 'checkcolumn',
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
var cssPrefix = Ext.baseCSSPrefix,
cls = cssPrefix + 'grid-checkcolumn';


if (this.disabled || value == 'N') {
metaData.tdCls += ' ' + this.disabledCls;
}
if (value) {
cls += ' ' + cssPrefix + 'grid-checkcolumn-checked';
}

return '<img class="' + cls + '" src="' + Ext.BLANK_IMAGE_URL + '"/>';
},
dataIndex: 'oldUser',
text: 'OldUser',
listeners: {
beforecheckchange: 'onCheckcolumnBeforeCheckChange'
}
}
],

onCheckcolumnBeforeCheckChange: function(checkcolumn, rowIndex, checked, eOpts) {
var row = this.getView().getRow(rowIndex),
record = this.getView().getRecord(row);
return (record.get('oldUser') != 'N');
}
});

我创建了一个 fiddle : https://fiddle.sencha.com/#fiddle/bqd

关于Extjs : How to enable/disable a checkbox using renderer while loading a grid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26370392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com