我希望能够点击渲染按钮并保存新值。
在自定义项目中,按下复选框时会显示图像的值。
目前,呈现为按钮的复选框正确显示项目中值的正确图像,但单击该按钮并且用户保存项目时,值和按钮将恢复为其原始状态。
GIF:http://g.recordit.co/vbe99tL7Q7.gif
如果我删除渲染样式,该复选框在项目中正常工作而不显示任何图像。
定制中是否缺少某些内容?
答案 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);
}
}