1) 我认为唯一的方法是创建自己的属性。
类似的东西:
public class PXSelectorTextEditAttribute : PXSelectorAttribute
{
bool selectorMode;
public PXSelectorTextEditAttribute(Type type, bool selectorOn):base(type)
{
selectorMode = selectorOn;
}
public override void FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
{
if(selectorMode)
base.FieldVerifying(sender, e);
}
public static void SwitchSelectorMode(PXSelectorTextEditAttribute attribute, bool onOff)
{
attribute.selectorMode = onOff;
}
}
您将能够打开和关闭属性的“选择器”部分。关闭字段验证后,您将能够像在简单的 TextEdit 字段中一样将任何值放入该字段。但是,字段右端的查找按钮仍然可见。我不知道如何隐藏它。
2) 这种行为很容易实现。您将需要类似的东西(基于现金帐户的示例):
[PXSelector(typeof(Search<CABankTran.tranID, Where<CABankTran.cashAccountID, Equal<Current<Filter.cashAccountID>>>>))]
如果您想在未定义 cashaccount 时查看所有记录,则只需修改 where 子句,添加 Or<Current<Filter.cashAccountID>, isNull>
另外不要忘记将AutoRefresh="true" 添加到 aspx 中的 PXSelector。没有它,您的选择器将保留记录列表,直到您在其中按下刷新。