我有一个使用PXCustomSelectorAttribute类创建的自定义选择器,我无法执行AutoRefresh,因为此选项不可用。任何人都可以告诉我如何自动刷新自定义选择器。
答案 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。请参见下面的屏幕截图。
更新:
如果是网格,你需要添加你需要在网格级别中添加控件,如下面的屏幕截图所示:
添加控件后,您将看到该字段的字段编辑器(3)。
在Field Editor的属性中,AutoRefresh可用,您可以将其设置为True: