2017-02-08 14 views
-1

私は2つの画面を持っています..最初のビューにはテーブルが含まれています... 2番目のビューで新しいレコードを作成しています... .hereテーブルは作成された新しいレコードを表示していません。テーブルに作成されたレコードを最初の画面に戻した後に追加します

if i reload app then its showing...but it has to show on navigating back.. 

    firstview.xml 

    <Table items="{path:'/Emp'}" id="table_id">  

    firstcontroller 

// url="/Emp" 
    // var table = this.byId("table_id"); 
    //    table.bindItems({ 
    //     path: url, 
    //     template: table.getBindingInfo("items").template}); 




    second controller 

    creat: function(oEvent) { 
    creating a new record by calling odata....... 

    model.create() 


    }, 

    //if i go back to first screen then new created record should add to table in first view..how to refres table on back from second view to first view 
     onNavBack : function() { 


        this.getRouter().navTo("firstcontroller", {}, true); 
       }, 
+0

これに対する答えは、あなたがバインディングコードを持っている場所によって異なります。コントローラのonInitメソッドで記述した場合、再バインドは行われません。同様に作成の後に読ませてください。一般的に、UI5フレームワークはこれを処理しますが、ここで詳細を確認する必要があります。より良い方法は、最初のビューでrouteMatchedハンドラでバインディングが確実に更新されるようにすることです。コントロールがビューから戻るように、バインディングがリフレッシュされて新しいデータがロードされます。 – Veeraraghavan

+0

はonInitにバインドされていません...私はxmlでバインディングを行っています。バインドされたxmlからリフレッシュするには –

+0

http://stackoverflow.com/help/how-to-askをお読みください – matbtt

答えて

0

私はモデルが更新されたらそれをリフレッシュしていないと思います。モデルをリフレッシュしてみてください。

あなたが戻ってくる機能をリフレッシュしてみてください。

それ以降にも得られなかった場合も同様です。新しい記録とコードを追加するコードを共有してください。

あなたは以下のコードでテーブルモデルを更新することができます。

this.getView().byId("table_id").getModel().refresh(); 
関連する問題