在Acumatica中,PXGrid控件的PXDropDown字段的值更改不会自动更新缓存。要解决这个问题,可以使用以下代码示例中的方法来手动更新缓存:
public PXAction UpdateDropDown;
[PXButton]
[PXUIField(DisplayName = "Update DropDown")]
protected virtual IEnumerable updateDropDown(PXAdapter adapter)
{
// 获取PXDropDown控件的当前值
string currentDropDownValue = MyGrid.Cache.GetValueExt(CurrentRow) as string;
// 设置一个新的值
string newDropDownValue = "New Value";
MyGrid.Cache.SetValue(CurrentRow, newDropDownValue);
// 更新缓存中的记录
MyGrid.Cache.Update(CurrentRow);
// 提交缓存的更改
MyGraph.Actions.PressSave();
// 刷新缓存中记录的显示值
MyGrid.Cache.SetValueExt(CurrentRow, currentDropDownValue);
// 返回更新后的记录
yield return CurrentRow;
}
在上述代码示例中,MyDAC
是自定义数据库访问类,myDropDownField
是PXDropDown字段的名称。要使用此代码示例,您需要在适当的地方将其添加到Acumatica图形类中,并将其与PXButton操作绑定到PXGrid控件。
该方法的主要步骤如下:
通过执行上述步骤,您可以手动更新PXDropDown字段的值并刷新缓存中的记录。