2017-06-21 11 views
0

レシートにリンクしているグリッドの参照番号にリダイレクトリンクが追加されました。私は新しいタブの代わりにポップアップを開くページを作ったのですが、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 =を持っている)だけでなく、検索graph.receipt.Current.RefNbr後= row.RefNbr。デバッグとステップ実行時のコード内のすべてのオブジェクトは、正しい値に設定されています。これらの値が正しく表示されているにもかかわらず、ポップアップが表示されても、それでも不正なレコード(最初のレコードが取得された)があります。

答えて

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> 
+0

CommitChanges = trueの行をASPXアクションを定義し、graph.Caches [typeof(INRegiste)]を追加しました。Current = row(行は私が望むターゲットなので)、まだそれをしませんでした。最初のエントリをクリックすると新しいデータがロードされるように感じますが、いつでも別のレコードをクリックすると、必要なデータが再ロードされず、古い画面が開きます。ポップアップに表示する前にデータをリロードするように強制する方法はありますか? –

+0

リフレッシュボタンを使って手動で画面をリフレッシュすることはできますか?それを行うと良い記録が表示されますか? –

+0

ポップアップなので、ポップアップをブラウザで更新することはできません(右クリックして最新表示をクリックするだけでも)。ページ自体にはリフレッシュボタンがありません(Acumaticaリフレッシュボタン)。 –

関連する問題