【发布时间】:2020-10-21 16:02:57
【问题描述】:
我有一个使用以下代码构建的自定义 PXSelector 控件
using PX.Data.ReferentialIntegrity.Attributes;
using PX.Data;
using PX.Objects.AP;
using PX.Objects.CM;
using PX.Objects.Common.Discount.Attributes;
using PX.Objects.Common.Discount;
using PX.Objects.Common;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.DR;
using PX.Objects.EP;
using PX.Objects.FA;
using PX.Objects.GL.DAC.Abstract;
using PX.Objects.GL;
using PX.Objects.IN;
using PX.Objects.PM;
using PX.Objects.PO;
using PX.Objects.TX;
using PX.Objects;
using System.Collections.Generic;
using System;
namespace PX.Objects.AP
{
public class APTranExt : PXCacheExtension<PX.Objects.AP.APTran>
{
#region UsrResource
[PXDBString]
[PXUIField(DisplayName="Resource",Required = true)]
[PXSelector(
typeof(Search<CSAttributeDetail.valueID,Where<CSAttributeDetail.attributeID, Equal<AttributeExtender.resource>>>),
typeof(CSAttributeDetail.valueID),
typeof(CSAttributeDetail.description),
SubstituteKey = typeof(CSAttributeDetail.valueID)
)]
public virtual string UsrResource { get; set; }
public abstract class usrResource : PX.Data.BQL.BqlString.Field<usrResource> { }
#endregion
}
public static class AttributeExtender
{
public const string Resource = "RESOURCE";
public class resource : PX.Data.BQL.BqlString.Constant<resource>
{
public resource() : base(Resource) {; }
}
}
}
挑战是当用户在控件中搜索资源时,搜索仅使用第一列(valueID)进行过滤,如图所示
标准的 PXSelector 控件搜索选择器显示的所有列,如下图所示
我的问题是,如何启用我的自定义 PXSelector 控件以允许用户搜索它显示的所有列(valueID 和描述),就像标准 PXSelector 控件所做的那样,以便用户可以使用描述列进行搜索也一样?
【问题讨论】: