You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清除Smart Panel对话框(PXFilter)的输入并在每次打开时重置默认值

解决方案

1. 调整C#业务逻辑

在调用AskExt弹出Smart Panel之前,手动重置Filter缓存并插入初始化后的默认实例,修改你的AddFromStock方法如下:

protected virtual IEnumerable AddFromStock(PXAdapter adapter)
{
    MyTag tag = Tags.Current;

    if (tag?.TranRefNbr != null)
    {
        throw new PXException(Messages.TagAlreadyReceived);
    }

    MyTagEntry graph = PXGraph.CreateInstance<MyTagEntry>();

    // 新增:重置Filter缓存为默认值
    stockparamfilter.Cache.Clear();
    StockParamFilter newFilter = (StockParamFilter)stockparamfilter.Cache.CreateInstance();
    stockparamfilter.Cache.SetDefaultExt(newFilter);
    stockparamfilter.Cache.Insert(newFilter);

    WebDialogResult dialogResult = stockparamfilter.AskExt(setStockStateFilter, true);
    if (dialogResult == WebDialogResult.OK || (IsContractBasedAPI && dialogResult == WebDialogResult.Yes))
    {
        // 原有业务逻辑
    }
    return adapter.Get();
}

同时调整setStockStateFilter方法,直接从传入的参数获取Filter缓存,避免读取到旧的上下文数据:

private void setStockStateFilter(PXGraph aGraph, string ViewName)
{
    var filterCache = aGraph.Views[ViewName].Cache;
    StockParamFilter filter = filterCache.Current as StockParamFilter;
    // 你的校验逻辑,计算enableStockParams
    bool enableStockParams = /* 业务逻辑判断 */;
    checkStockParams.SetEnabled(enableStockParams);
}

2. 调整ASPX页面配置

找到Smart Panel对应的PXFormView控件,添加AutoRefresh="True"属性,同时在DialogConfig节点设置KeepPreservedData="False",配置示例如下:

<px:PXFormView ID="frmStockParamFilter" runat="server" DataSourceID="ds" DataMember="stockparamfilter" AutoRefresh="True">
    <DialogConfig KeepPreservedData="False" />
    <Template>
        <!-- 原有面板字段配置 -->
    </Template>
</px:PXFormView>

原理解释

你之前操作失效的核心原因是PXFilter类型视图属于单记录缓存,清空缓存后没有插入新的初始化实例,导致视图没有绑定的有效当前记录,面板的OK按钮事件找不到对应绑定数据就不会触发执行。设置KeepPreservedData="False"是告诉Acumatica框架关闭对话框后不要保留用户输入的临时数据,配合代码层面的缓存重置,就能保证每次打开面板都是默认值。


内容的提问来源于stack exchange,提问作者Brian Stevens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:07