提前抱歉,我是法国人,我的英语很糟糕LOL
我的网格面板:
new Ext.grid.GridPanel({
title: "Utilisateurs",
layout: 'fit',
style: marginElement,
columns: mesColonnesUtil,
id: 'gridPanelUtil',
width: '70%',
colspan: 2,
collapsible: false,
layout: 'fit',
autoWidth: true,
monitorResize: true,
height: 200,
store: storeUtil,
stripeRows: true,
selModel: new Ext.grid.RowSelectionModel({
singleSelect: true
}),
listeners: {
click: function () {
this.selModel.getSelected();
}
}
});
我的商店:
var storeUtil = new Ext.data.JsonStore({
proxy: proxyGrUtil,
baseParams: {
method: 'storeUtil',
gr: ''
},
autoLoad: true,
fields: ["Nom", "Prenom", "LDAPUser"],
root: "rows",
totalProperty: "total",
successProperty: "success"
});
我的combobox
选择了事件,我用params加载了我的网格面板:
{
xtype: 'combo',
store: storeGrUtil,
id: 'comboGrUtil_GrUtil',
width: 300,
valueField: "id",
displayField: "lib",
triggerAction: 'all',
mode: 'local',
listeners: {
select: function () {
Ext.getCmp('gridPanelUtil').store.load({
params: {
gr: Ext.getCmp('comboGrUtil_GrUtil').getValue() // this the value of items selected combobox
}
})
}
}
}
此事件发生后,我无法在网格面板中选择一行,为什么? 我不明白。 请帮帮我。
Pourlesfrançaisquipasseraispaslà: J'ai un grid panel,quejejostaprèsquej'aiélectionnéunélémentdansma combobox。 Maisaprèscela,je ne peutplussélectionnerdeligne dans mon grid panel,je ne comprend pas pourquoi。 谢谢!
答案 0 :(得分:0)
你需要使用网格的selectionModel
,也许你可以在调用load
到商店时传递回调
store.load({
callback: function(records, operation, success) {
//operation object contains all of the details of the load operation
//records contains all the records loaded
console.log(records);
}
});
你可以打电话
grid.getSelectionModel( ).select(object/index);
//you need to pass record instance or index
希望有所帮助
答案 1 :(得分:0)
将发布英文信息。
Je ne suispasfrançaismaisquébécois。 Je vaisterépondretoutdemêmedansla languedeMolièreafinque tu puisses bien saisir。
Quand tu fais ton store.load,ta grille se vide et sencence avec lesnouvellesdonnées。 Ceci cefaitàpartird'unévènementalorstu ne peuxpasélectionnerlaligneaprèsl'appel mais seulement quand l'évènementestcomplété。 C'est pourquoi tu devrais mettrelasélectiondanscetteévènement。
Si je me rappelle bien le contenu de la grille devraitbienêtrechargéàcemoment。 Ajoute donc un listeners sur l'évènementloadde ton store decettefaçon:
var storeUtil = new Ext.data.JsonStore({ proxy: proxyGrUtil, baseParams: { method: 'storeUtil', gr: '' }, autoLoad: true, fields: ["Nom", "Prenom", "LDAPUser"], root: "rows", totalProperty: "total", successProperty: "success", listeners: load: function(e, records, options){ Ext.getCmp("gridPanelUtil").getSelectionModel().selectRow(maLigneASelectionner); } } });
Siçanefonctionne pas,jeteugugèredejeter un oeil sur d'autresévènementsadjpar exemple rowsinserted du gridView。
Bonne chance。
英文讯息:
问题是调用商店的load事件。您必须在此事件中执行行选择,而不是在调用后执行。如果我记得很清楚,网格在此事件中已完全加载。看一下上面的代码标签。
如果不起作用,我建议你去看看其他事件。也许使用gridin的rowinserted。
希望得到这个帮助。
祝你好运