如何在Acumatica PXGrid中保持复选框选中状态?

如何在Acumatica PXGrid中保持复选框选中状态?,acumatica,acumatica-kb,Acumatica,Acumatica Kb,我已经在PXGrid中选中了复选框列,当我选中它时,页面回发和选中状态不会丢失,但当我单击自定义操作按钮,然后选中复选框,未选中时,我应该如何保持复选框状态 在操作按钮点击中,我打开了一个对话框,这里所有复选框都未选中,PrimaryView和Dialogbox数据成员是不同的 如何保持复选框状态?所选的标识符在处理屏幕时具有特殊意义。Acumatica框架将不同的行为应用于名为的选定字段。对于处理屏幕,需要选择一个名为的字段。在这种情况下,您应该避免命名选定的字段 public abstrac

我已经在PXGrid中选中了复选框列,当我选中它时,页面回发和选中状态不会丢失,但当我单击自定义操作按钮,然后选中复选框,未选中时,我应该如何保持复选框状态

在操作按钮点击中,我打开了一个对话框,这里所有复选框都未选中,PrimaryView和Dialogbox数据成员是不同的


如何保持复选框状态?

所选的
标识符在处理屏幕时具有特殊意义。Acumatica框架将不同的行为应用于名为
的选定字段
。对于处理屏幕,需要选择一个名为
的字段
。在这种情况下,您应该避免命名选定的
字段

public abstract class isChecked : PX.Data.BQL.BqlBool.Field<isChecked> { }

[PXDBBool]
[PXUIField(DisplayName="Selected")]
public virtual Boolean? IsChecked
{
    get;
    set;
}
确保字段用
PXDBBool
属性而不是
PXBool
属性修饰。只有带有
PXDB
前缀的字段才会持久化到数据库中

将数据库和DAC中的字段名从
Selected
更改为类似
IsChecked

public abstract class isChecked : PX.Data.BQL.BqlBool.Field<isChecked> { }

[PXDBBool]
[PXUIField(DisplayName="Selected")]
public virtual Boolean? IsChecked
{
    get;
    set;
}
检查公共抽象类:PX.Data.BQL.BqlBool.Field{} [PXDBBool] [PXUIField(DisplayName=“Selected”)] 公共虚拟布尔?检查 { 得到; 设置 }
您在字段上设置了“提交更改”吗?谢谢您的回复,我得到了答案。我还有一个问题,在processing(处理)屏幕中,在这种情况下,单击Process(处理)/Process All(处理所有)按钮可以获得所选行。您只能在Process Delegate(处理委托)方法中读取所选列的值。如果在别处读取,则该值将无效。也不能设置它的值。它是仅与选定列关联的特殊情况之一。特定方法是在SetProcessDelegate方法中传入的参数。在这个文档页面示例中,它是“公共静态作废流程”(列表如果您找不到Process Delegate方法,请将您的图形源代码添加到您的问题中。感谢您的回复,我的处理程序不是静态的,我想在单击处理程序时显示一个弹出窗口,以及当我单击Process时会发生什么情况,然后在我选择2时,它会自动选中所有复选框,您知道为什么吗?我如何才能只选中?您应该d将其设置为静态,因为您无法在处理委托的上下文中可靠地引用“this”对象。您也无法显示来自该方法的对话框。听起来您没有正确遵循处理屏幕模式,是否调用了SetProcessDelegate?