我试图使用一个rallymultiobjectpicker(不确定为什么没有一个对象选择器)来提取一个投资组合项目列表。但是,我想通过“投资组合项类型”字段筛选结果。我没有幸运地认识到修改后的storeCfg的参数。任何修改似乎都被忽略了,甚至可以简单地将“名称”字段中的排序从“ASC”更改为“DESC”。
这是一个基本的例子:
this.pis = Ext.widget('rallymultiobjectpicker', {
items: [{
modelType: 'portfolio item'
}],
storeCfg: {
autoLoad: false,
fetch: "Name, PortfolioItemType",
pageSize: 200,
filters: [
{
property: 'PortfolioItemType',
value: 'Initiative'
}
],
sorters: [
{
property: 'Name',
direction: 'DESC'
}
],
remoteGroup: false,
remoteSort: false,
remoteFilter: false,
limit: Infinity
}
});
答案 0 :(得分:1)
我会在你写这些问题时尝试解决你的问题。
多对象选择器的单个对象版本是combobox。作为选择的附注,我可能会使用Chooser组件的任何类型的项目组合项。拾取器和组合框组件运行良好,除非它们有太多选项。选择器是一种很好的方式,可以让您的用户准确找到他们正在寻找的对象,而无需为他们提供一百万长的列表。
此外,PortfolioItemType是一个对象,而不仅仅是一个字符串值。但您可以通过它的名称进行查询,如下所示。
<!DOCTYPE html>
<script type="text/javascript" src="/apps/2.0p/sdk.js"></script>
<script type="text/javascript">
Rally.onReady(function() {
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
Ext.create('Rally.ui.dialog.ChooserDialog', {
artifactTypes: ['portfolioitem'],
autoShow: true,
listeners: {
artifactChosen: function(selectedRecord) {
Ext.Msg.alert('Chooser', selectedRecord.get('Name') + ' was chosen');
},
scope: this
},
storeConfig : {
filters: [
{
property: 'PortfolioItemType.Name',
value: 'Initiative'
}
]
}
});
}
});
Rally.launchApp('CustomApp', {
name: 'Tacos'
});
});
</script>
这是一个多对象选择器
<!DOCTYPE html>
<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0p/sdk.js"></script>
<script type="text/javascript">
Rally.onReady(function() {
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
this.add({
xtype: 'rallymultiobjectpicker',
modelType: 'portfolioitem',
storeConfig : {
filters: [
{
property: 'PortfolioItemType.Name',
value: 'Initiative'
}
]
},
listeners:{
collapse:function(picker){
console.log(picker.getValue());
}
}
});
}
});
Rally.launchApp('CustomApp', {
name: 'Tacos'
});
});
</script>