放置在网格中时,自定义选择器不会刷新

时间:2018-04-06 11:52:43

标签: acumatica

我有一个使用PXCustomSelectorAttribute类创建的自定义选择器,我无法执行AutoRefresh,因为此选项不可用。任何人都可以告诉我如何自动刷新自定义选择器。

1 个答案:

答案 0 :(得分:2)

下面是如何创建CustomSelector并将其设置为AutoRefresh模式的示例。

using PX.Objects.SO;
using PX.Objects.AR;
using PX.Data;
using System.Collections;

namespace TestLib
{
    public class SOOrderExt : PXCacheExtension<SOOrder>
    {
        #region UsrTestField
        [PXDBString]
        [PXUIField(DisplayName = "TestField")]
        [CustomerPriceClass()]
        public virtual string UsrTestField { get; set; }

        public abstract class usrTestField:IBqlField {  }
        #endregion
    }

    public class CustomerPriceClassAttribute : PXCustomSelectorAttribute
    {
        public CustomerPriceClassAttribute()
        : base(typeof(ARPriceClass.priceClassID))
        {
            this.DescriptionField = typeof(ARPriceClass.description);
        }
        protected virtual IEnumerable GetRecords()
        {
            ARPriceClass epc = new ARPriceClass();
            epc.PriceClassID = ARPriceClass.EmptyPriceClass;
            epc.Description = PX.Objects.AR.Messages.BasePriceClassDescription;
            yield return epc;
            foreach (ARPriceClass pc in PXSelect<ARPriceClass>.
            Select(this._Graph))
            {
                yield return pc;
            }
        }
    }
}

在此之后,您需要从布局编辑器将该字段添加到UI,并将Ext Properties部分中的AutoRefresh属性设置为True。请参见下面的屏幕截图。

enter image description here

更新:

如果是网格,你需要添加你需要在网格级别中添加控件,如下面的屏幕截图所示:

enter image description here

添加控件后,您将看到该字段的字段编辑器(3)。

在Field Editor的属性中,AutoRefresh可用,您可以将其设置为True:

enter image description here