如何在运行时将计算列添加到GridView

问题描述 投票:0回答:1

我有三个 DAC:People(PeopleID, Name)、Skills(SkillID, Name) 和 SkillValues(PeopleID, SkillID, Value)。当我将记录添加到技能时,它应该在我的图表上的网格中显示为一列,显示人员列表。这是我现在拥有的代码,但它没有向网格添加任何列。然而,它在我打开页面时运行,所以我乐观地认为这是可能的。

 public class MyGraph: PXGraph<MyGraph>
 {
    public MyGraph()
    {
        AddSkillColumns(MasterView.Cache);
    }

    private void AddSkillColumns(PXCache sender)
    {
        PXResultset<Skills> rows = SelectFrom<Skills>.View.Select(this);
        foreach (Skills row in rows)
        {
            String key = String.Format("Comp_{0}",row.SkillID.ToString());
            if(!sender.Fields.Contains(key))
            {
                sender.Fields.Add(key);
                this.FieldSelecting.AddHandler("MasterView", key, (PXCache cache, PXFieldSelectingEventArgs args) =>
                {

                });
                this.FieldUpdating.AddHandler("MasterView", key, (PXCache cache, PXFieldUpdatingEventArgs args) =>
                {

                });
            }
        }
    }

    public SelectFrom<People>.View.ReadOnly MasterView;

}

acumatica
1个回答
0
投票

您需要将列添加到自定义编辑器中的网格,并根据需要在 RowSelected 事件中显示/隐藏它们。

© www.soinside.com 2019 - 2024. All rights reserved.