为了减少对服务器的回调,没有行选择事件。相反,有 PXToolbarButton StateColumn 属性来控制按钮的启用状态。
当您声明按钮时,您可以指定一个布尔 DAC 字段,该字段将根据按钮的值启用/禁用该按钮。请注意,该按钮需要将 DependOnGrid 属性设置为网格的 ID 才能获取所选行:
<px:PXToolBarButton Text="Button A" DependOnGrid="grid" StateColumn="IsButtonVisible">
IsButtonVisible 是一个自定义的未绑定布尔 DAC 字段(您可以选择任何您想要的名称,除了 isSelected/Selected ,它是为复选框保留的):
#region IsButtonVisible
public abstract class isButtonVisible : IBqlField
{
}
protected bool? _IsButtonVisible;
[PXBool]
[PXUIField(DisplayName = "Is Button Visible", Enabled = false, Visible = false)]
public virtual bool? IsButtonVisible
{
get
{
return _IsButtonVisible;
}
set
{
_IsButtonVisible = value;
}
}
#endregion
您可以根据您的业务逻辑在 RowSelected 事件中设置 IsButtonVisible 的值:
protected virtual void DAC_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
DAC row = e.Row as DAC;
if (row != null)
{
bool yourCondition = ???;
row.IsButtonVisible = yourCondition;
}
}
Source:
启用网格或 PXToolBarButton 的禁用按钮,这取决于 Acumatica 中列的值