gpt4 book ai didi

extjs - ComboBox 仅在单击时显示 displayField

转载 作者:行者123 更新时间:2023-12-01 13:02:11 24 4
gpt4 key购买 nike

我有一个通过 Ext.Window 显示的 EditorGridPanel。

resources 是我通过 Ajax 调用获得的 Json 数据。

示例数据:{"data":[{"id":"1","allowed":"1","roleId":"0","re​​source":"nothing"}]}

问题是 ComboBox 的 displayField 仅在我单击 ComboBox 时显示。单击时,我得到选项:“允许”、“不允许”。当我移除焦点时,会显示值:“1”、“0”。

即使我没有点击,如何显示显示字段值?

showRoleDetails: function(resources, roleId) {
var rolesData = resources;

var store = new Ext.data.JsonStore({
url: '/plugin/Registration/admin/get-acl-resources-of-role',
baseParams: { role: roleId},
storeId: 'myStore',
root: 'data',

fields: [
{name: 'allowed'},
{name: 'resource'}
]
});

store.load();

var grid = new Ext.grid.EditorGridPanel({
title: "Edit / View permissions for resources",
store: store,
autoHeight: true,
columns: [

{
header: 'Allowed',
dataIndex: 'allowed',
editor: new Ext.form.ComboBox({
triggerAction: 'all',
frame: true,
lazyRender:true,
editable: false,
mode: 'local',
value: 'allowed',
store: new Ext.data.JsonStore({
fields : ['allowed', 'allowedLabel'],
data :
[
{
allowed: '1',
allowedLabel: 'allowed'
},
{
allowed: '0',
allowedLabel: 'not allowed'
}
]
}),
valueField: 'allowed',
displayField: 'allowedLabel'
})
},
{
header: 'Resource',
dataIndex: 'resource'
}
]
});

var window = new Ext.Window({
items: grid
});
window.show();

}

编辑: Following Narendra Kamma 的回应,我这样编辑了我的代码:

var comboBox = new Ext.form.ComboBox({ //Combox values need to be filled up
triggerAction: 'all',
frame: true,
lazyRender:true,
editable: false,
mode: 'local',
value: 'allowed',
store: new Ext.data.JsonStore({
fields : ['allowed', 'allowedLabel'],
data :
[
{
allowed: '1',
allowedLabel: 'allowed'
},
{
allowed: '0',
allowedLabel: 'not allowed'
}
]
}),
valueField: 'allowed',
displayField: 'allowedLabel'
}) ;

var me = this;

var grid = new Ext.grid.EditorGridPanel({
title: "Edit / View permissions for resources",
store: store,
autoHeight: true,
columns: [

{
header: 'Allowed',
dataIndex: 'allowed',
editor: comboBox,
renderer: me.comboBoxRenderer(comboBox)
},
{
header: 'Resource',
dataIndex: 'resource'
}
]
});

效果非常好。

最佳答案

您应该自己渲染显示值。在网格列规范中查找 renderer 选项。

  1. 配置渲染器
  2. 它将提供选定的值,以及相关的商店记录
  3. 您可以根据您的逻辑返回显示值(按字面接受任何值)

关于extjs - ComboBox 仅在单击时显示 displayField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338198/

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