重定向链接未更新以获取新信息

时间:2017-06-21 15:56:36

标签: acumatica

我在网格中添加了一个重定向链接,用于链接回收据。我按照T200中的说明执行任务,除了 我创建了一个打开弹出窗口而不是新选项卡的页面。它适用于我点击的第一个参考号,但之后它不会更改记录。而是弹出窗口显示我单击的第一个参考号的记录。这是我的代码:

    protected void RefNbrReceipt()
    {
        INRegister row = Receipts.Current;

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

        graph.receipt.Current = graph.receipt.Search<INRegister.refNbr>(row.RefNbr);

        if (graph.receipt.Current != null)
        {
            throw new PXPopupRedirectException(graph, "Receipt Details");
        }
    }

我检查并确保行更新为所选值(我在网格上有SyncPosition = true)以及搜索之后的graph.receipt.Current.RefNbr = row.RefNbr。调试和单步调试时代码中的所有对象都设置为它们应该是正确的值。即使这些值显示正确,当弹出窗口显示时,它仍然有不正确的记录(提取的第一个记录)。

1 个答案:

答案 0 :(得分:0)

你确定电流设置正确吗? 如果不确定你使用DependOnGrid:

<px:PXDSCallbackCommand Name="RefNbrReceipt" Visible="False" DependOnGrid="grid" CommitChanges="True" /></CallbackCommands>

您还可以在打开图表之前尝试设置CurrentDocument和当前缓存记录:

INRegister inRegister = graph.receipt.Search<INRegister.refNbr>(row.RefNbr);
graph.receipt.CurrentDocument.Current = inRegister;
graph.Caches[typeof(INRegister)].Current = inRegister;

在某些具有弹出窗口的情况下,您需要使用AutoCallBack-Command和AutoCallBack-Target属性发出刷新命令,您可以使用网格和表单容器来执行此操作:

<px:PXSmartPanel ID="pnlActivityLog" runat="server" Width="800px" Height="400px" Style="z-index: 108;" Caption="Activity log" CaptionVisible="True" 
                 Key="ActivityLogs" CommandSourceID="ds" CreateOnDemand="False" AutoCallBack-Command="Refresh" AutoCallBack-Target="gridActivityLog">
    <px:PXGrid ID="gridActivityLog" runat="server" Height="200px" Width="100%" BatchUpdate="True" SkinID="Inquire" DataSourceID="ds">
    </px:PXPanel>
</px:PXSmartPanel>