动态更改 canvas 上列表框的绑定实体
Dynamically changing the bound entity of a list box on a canvas
我想知道是否有人遇到过这个问题。
我在 canvas 应用程序上有两个单选按钮,我试图控制列表框中显示的值。
RadioButtons.Items: ["SomeValueA","SomeValueB"]
只要单选按钮的值发生变化,列表框控件就会被重置。
UpdateContext({resetList: !resetList});
UpdateContext({resetList: !resetList});
Reset(lbListbox);
lbListbox.Reset: resetList
对于列表框本身,我有以下项目:
Switch(
RadioButtons.Selected.Value,
"SomeValueA",
Sort(
EntityA.FieldName,
Descending
),
"SomeValueB",
Sort(
EntityB.'Some other field name',
Descending
)
)
问题是当我 select 'SomeValueA' 列表框正确地填充了来自 EntityA.FieldName 的值但是当我从 select 'SomeValueB'单选按钮列表框空白与空记录。列表框中似乎有些项目我可以滚动浏览,但 select 但看不到。
如果我在屏幕上放置两个列表框并将它们的 Items 事件设置为特定实体,则值会正确显示在两个列表框中,因此我知道实体 naming/field 是正确的。
我试过不重置列表框,我试过使用由实体记录组成的集合。
有没有人遇到过这个可能有解决方案的人。我打算尝试将两个列表框放在另一个列表框的顶部,然后 hide/show 或将活动列表放在最前面,但这也行不通。
谢谢!
(从其他来源收到此 post,我想我也可以 post 返回这里)
让这个工作,但它有点挑剔。问题似乎是给 List 一个值对 table,而不仅仅是一个值列表。
首先我从CDS收集了Option Sets,并加了一栏标明来源名称,以供参考。这可以很容易地组合成一个集合,然后过滤,但我认为简单。
ClearCollect(colOptionSet1,AddColumns(Choices('Ownership (Accounts)'),"appSource","Ownership"));
ClearCollect(colOptionSet2,AddColumns(Choices('Preferred Method of Contact (Accounts)'),"appSource","Preferred Method"));
接下来添加了一个与您的相同的单选按钮。
然后添加一个List控件,Items等于
If( Radio1.Selected.Value = "SomeValueA", colOptionSet1, Radio1.Selected.Value = "SomeValueB", colOptionSet2 )
您可能需要使用右侧 属性 窗格在值和 "appSource" 之间切换(来自上面的集合),但这确实允许我在两个单独的选项集字段之间切换一个列表。
Patching/writing 这个背又是一个障碍。
我想知道是否有人遇到过这个问题。 我在 canvas 应用程序上有两个单选按钮,我试图控制列表框中显示的值。
RadioButtons.Items: ["SomeValueA","SomeValueB"]
只要单选按钮的值发生变化,列表框控件就会被重置。
UpdateContext({resetList: !resetList});
UpdateContext({resetList: !resetList});
Reset(lbListbox);
lbListbox.Reset: resetList
对于列表框本身,我有以下项目:
Switch(
RadioButtons.Selected.Value,
"SomeValueA",
Sort(
EntityA.FieldName,
Descending
),
"SomeValueB",
Sort(
EntityB.'Some other field name',
Descending
)
)
问题是当我 select 'SomeValueA' 列表框正确地填充了来自 EntityA.FieldName 的值但是当我从 select 'SomeValueB'单选按钮列表框空白与空记录。列表框中似乎有些项目我可以滚动浏览,但 select 但看不到。
如果我在屏幕上放置两个列表框并将它们的 Items 事件设置为特定实体,则值会正确显示在两个列表框中,因此我知道实体 naming/field 是正确的。
我试过不重置列表框,我试过使用由实体记录组成的集合。
有没有人遇到过这个可能有解决方案的人。我打算尝试将两个列表框放在另一个列表框的顶部,然后 hide/show 或将活动列表放在最前面,但这也行不通。
谢谢!
(从其他来源收到此 post,我想我也可以 post 返回这里)
让这个工作,但它有点挑剔。问题似乎是给 List 一个值对 table,而不仅仅是一个值列表。 首先我从CDS收集了Option Sets,并加了一栏标明来源名称,以供参考。这可以很容易地组合成一个集合,然后过滤,但我认为简单。
ClearCollect(colOptionSet1,AddColumns(Choices('Ownership (Accounts)'),"appSource","Ownership"));
ClearCollect(colOptionSet2,AddColumns(Choices('Preferred Method of Contact (Accounts)'),"appSource","Preferred Method"));
接下来添加了一个与您的相同的单选按钮。 然后添加一个List控件,Items等于
If( Radio1.Selected.Value = "SomeValueA", colOptionSet1, Radio1.Selected.Value = "SomeValueB", colOptionSet2 )
您可能需要使用右侧 属性 窗格在值和 "appSource" 之间切换(来自上面的集合),但这确实允许我在两个单独的选项集字段之间切换一个列表。
Patching/writing 这个背又是一个障碍。