我在网格中使用了它的组件列。
我想为每个用户设置不同的商店。
如果在网格中有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列,用户名,权限 在Permission列中我显示了组合,我上面给出了代码。
假设有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
}),
但我可以知道为什么每次都给出呼叫服务器吗?我的意思是每个记录。我想必须有其他方法来做到这一点,因为我的网格商店有权限。
我的实际网格代码是这样的。
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')具有该用户权限。
我想将该权限添加到Combo商店。
即。默认的combostore +用户的权限。
希望我能在这里解释清楚。
请尽快回复我
答案 0 :(得分:0)
当然,有几种方法可以做到这一点。 我建议使用autoLoad的一个Permissions商店:true。您可以立即获取用户权限,然后在网格加载时可以使用组合框。