【发布时间】:2017-02-09 11:44:13
【问题描述】:
我希望能够单击呈现的按钮并保存新值。
在自定义项目中,当复选框被按下时,图像有一些值。
目前,呈现为按钮的复选框正确显示项目中值的正确图像,但是当单击按钮并且用户保存项目时,值和按钮将恢复到其原始状态。
GIF:http://g.recordit.co/vbe99tL7Q7.gif
如果我删除渲染样式,复选框在项目中正常工作,不显示任何图像。
自定义中是否缺少某些内容?
【问题讨论】:
标签: acumatica
我希望能够单击呈现的按钮并保存新值。
在自定义项目中,当复选框被按下时,图像有一些值。
目前,呈现为按钮的复选框正确显示项目中值的正确图像,但是当单击按钮并且用户保存项目时,值和按钮将恢复到其原始状态。
GIF:http://g.recordit.co/vbe99tL7Q7.gif
如果我删除渲染样式,复选框在项目中正常工作,不显示任何图像。
自定义中是否缺少某些内容?
【问题讨论】:
标签: acumatica
似乎正在使用为复选框定义的 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);
}
}
【讨论】: