我在我的网格中使用它的组件列。
我想为每个用户设置不同的商店。
如果在 Grid 中有 4 个用户,我想为每个用户设置不同的组合存储,以便当用户单击组合时,他将根据他的许可看到选项,或者我将设置的存储。
xtype: 'itscomponentcolumn',
text : '<b>Permission</b>',
width: 150,
dataIndex: 'permission',
items: function(value,record) {
return {
xtype: 'combobox',
store: [[0,'View Only'], [1,'View & Edit'], [2,'View,Edit & Delete'],[3,'No Access']],
//store:Combo_Store,
queryMode:'local',
displayField: 'display',
valueField: 'value',
name:'permission',
forceSelection:true,
width: 145,
listeners: { }
我无法附加图像。想象一下 Grid 有 5 条记录。网格有 2 列,用户名,权限列中的权限我正在显示组合,我在上面给出了代码。
假设有 vivek 用户,如果他只有查看权限,那么我只想在 vivek 记录旁边的组合中显示视图。
其他用户也一样。
我尝试使用 bindStore 设置商店,但对我不起作用。
请建议我如何做到这一点?
根据您的建议,我的代码是这样的
xtype: 'itscomponentcolumn',
text : '<b>Permission</b>',
width: 250,
sortable:false,
dataIndex: 'permission',
items: function(value,record) {
return {
xtype: 'combobox',
store: new Ext.data.Store({
proxy: {
type: 'ajax',
url: comboStoreURL+"¤etUserId="+record.get("userId"),
reader: {
type: 'json',
root: 'jsonStore'
}
},
autoLoad: true
}),
但是我能知道为什么每次都给呼叫服务器吗?我的意思是每条记录。我想一定有其他方法可以做到这一点,因为我在我的 Grid 商店中获得了许可。
我的实际网格代码是这样的。
var store = Ext.create('Ext.data.Store',
{
storeId: 'ShareComponentStoreId',
fields: ['userId','userName','permission','isProjectOwner'],
proxy: {
type: 'ajax',
url:strURL,
reader:
{
root: 'rootShareGrid',
totalProperty: 'totalCount'
},
writer:
{
type: 'json',
writeAllFields: false,
allowSingle: false,
encode: true,
root: 'row'
}
}
});
var shareGrid = Ext.create('Ext.grid.Panel', {
id: 'ShareComponentGrId',
enableColumnMove:false,
store: store,
columns: [
{
text: '<b>Name</b>',
flex: 1,
sortable:false,
width: 100,
dataIndex: 'userName'
},
{
xtype: 'itscomponentcolumn',
text : '<b>Permission</b>',
width: 250,
sortable:false,
dataIndex: 'permission',
items: function(value,record) {
return {
xtype: 'combobox',
store: new Ext.data.Store({
proxy: {
type: 'ajax',
url: comboStoreURL+"¤etUserId="+record.get("userId"),
reader: {
type: 'json',
root: 'jsonStore'
}
},
autoLoad: true
}),
queryMode : 'local',
displayField: 'display',
valueField: 'value',
name:'permission',
forceSelection:true,
width: 200,
所以 record.get('permission') 具有该用户的权限。
我想将该权限添加到组合商店。
即默认的combostore + 用户的权限。
希望我能在这里很好地解释。
请尽快回复我