2017-07-18 15 views
1

ショートバージョン:手動でページを更新しない限り、クエリビルダフィルタを含むテーブルに新しいエントリが表示されません。エントリを追加した後にテーブルが更新されない


ロングバージョン:私は完全かつ配信としてマークされたエントリをフィルタリングするためにDatasource Query Builderを使用している表があります。

ので、モデルはSystemOrdersですが、テーブルのデータソースには、追加のフィルタ(SystemOrders_HideComplete)を有するものです。これらはすべて正常に動作します。

ユーザーがデータベースの新しいエントリを作成すると、「追加」ボタンがクリックされ、ページフラグメントが開きます。彼らはすべてのデータを入力することができ、書かれますが、フラグメントが閉じても新しいエントリが表示されないと、テーブルは自動的に更新されません。

ブラウザのページを更新するか、テーブルと同じページのカスタムボタンでデータソースを再読み込みすると、新しいエントリが表示されます。

widget.datasource.query.clearFilters(); 
var datasource = app.datasources.SystemOrders_HideComplete; 
datasource.load(); 

私はそれを手動でページを更新することからユーザーを救うだろうが、それはどちらか動作するようには思えないことを期待してページフラグメントのための送信ボタンを調整してみました:

widget.datasource.createItem(); 
var datasource = app.datasources.SystemOrders_HideComplete; 
datasource.load(); 
app.closeDialog(); 

私はこれがdatasource.load();コマンドはフラグメントから来ていますか?

新しいエントリを自動的に表示する方法を見つける上で助けがあれば、大歓迎です。理論的には

答えて

1

、あなたがあなたのテーブルに同じデータソースを使用し、ページフラグメントを作成する場合、新しいアイテムはautamatically追加する必要があります。

// Table datasource 
app.datasources.SystemOrders_HideComplete 

// Page fragment datasource 
app.datasources.SystemOrders_HideComplete.modes.create 

場合は、新しいアイテムを作成するために、さまざまなデータソースを使用したい何らかの理由によって、あなたは新しいレコードをリストデータソースにプッシュすることができます(この場合、サーバーへの余分な呼び出しを避け、選択したフィルター/ページング/ソートに合わなくても、リストに新しい項目が表示されるように100%保証します)。 ):

widget.datasource.createItem({ 
    success: function(record) { 
    app.datasources.SystemOrders_HideComplete.items.push(record); 
    app.closeDialog(); 
    }, 
    failure: function(error) { 
    // TODO: handle error 
    } 
}); 

...またはforce list dat asource(このケースでは、あなたのフィルタに合った新鮮なデータを取得しますが、それはあなたの新しい項目を逃してしまうかもしれない)リロードします

​​
+0

app.datasources.SystemOrders_HideComplete.modes.createにページフラグメントの調整完璧に動作します。ありがとうございました! –

関連する問題