Acumatica使用图像代替CheckBox

时间:2017-02-08 21:33:58

标签: acumatica

我希望能够点击渲染按钮并保存新值。

在自定义项目中,按下复选框时会显示图像的值。

enter image description here

目前,呈现为按钮的复选框正确显示项目中值的正确图像,但单击该按钮并且用户保存项目时,值和按钮将恢复为其原始状态。

GIF:http://g.recordit.co/vbe99tL7Q7.gif

如果我删除渲染样式,该复选框在项目中正常工作而不显示任何图像。

定制中是否缺少某些内容?

1 个答案:

答案 0 :(得分:1)

似乎正在使用为checkBox定义的AutoCallBack。每当用户点击代表复选框的按钮时,AutoCallBack就会从BLC调用一个动作。

Aspx中的复选框定义:

<px:PXCheckBox runat="server" ID="chkUsrBoolField" CallbackUpdatable="True" DataField="UsrBoolField" RenderStyle="Button" AlignLeft="True" >
    <AutoCallBack Command="CheckFlag" Target="ds" />
    <UncheckImages Normal="main@Fail" />
    <CheckImages Normal="main@Success" />
</px:PXCheckBox>

PMProject DAC和ProjectEntryExt BLC扩展程序:

public class PMProjectExt : PXCacheExtension<PMProject>
{
    public abstract class usrBoolField : IBqlField { }

    [PXDBBool]
    public bool? UsrBoolField { get; set; }
}

public class ProjectEntryExt : PXGraphExtension<ProjectEntry>
{
    public PXAction<PMProject> CheckFlag;
    [PXButton]
    [PXUIField(Visible = false)]
    protected void checkFlag()
    {
        var proj = Base.Project.Current;
        proj.GetExtension<PMProjectExt>().UsrBoolField = 
            !proj.GetExtension<PMProjectExt>().UsrBoolField.GetValueOrDefault();
        Base.Project.Update(proj);
    }
}