目前我有一个未绑定的DAC,它在处理屏幕中充当过滤器。过滤器中的某些值正在字段更新事件中进行修改。问题是即使我正在执行RequestRefresh函数,UI也不会显示DAC的更新值。我还尝试在执行RequestRefresh之前调用View.Clear()函数无效。
我还有另一个场景,在网格中我有一个选中的复选框,其中一次只能选择一个项目。以下是实施:
protected virtual void DCCrCaseAssignedBenefits_Selected_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
DCCrCaseAssignedBenefits row = (DCCrCaseAssignedBenefits)e.Row;
if (row != null && !(bool)e.OldValue && (bool)row.Selected)
{
foreach (DCCrCaseAssignedBenefits item in cache.Updated)
{
if (item.Selected == true && item != row)
{
cache.SetValue<DCCrCaseAssignedBenefits.selected>(item, false);
}
}
CaseAssignedBenefits.View.RequestRefresh();
}
}
此代码摘录取自Acumatica,然后针对我的DAC进行了修改,但即使图表一次只有一个选定的项目,UI也不会刷新,并给人的印象是选择了多个项目。
答案 0 :(得分:0)
如果尝试使用cache.Update(item)代替SetValue
,该怎么办?在你的foreach循环中有类似的东西......
if (item.Selected == true && item != row)
{
item.Selected = false;
cache.Update(item);
}
如果这没有帮助,你可以包括你的aspx / grid吗?我假设问题是网格值更新与UI中的过滤器更新?