2017-07-18 119 views
1

短版本:除非手動刷新頁面,否則新條目不會出現在具有查詢生成器過濾器的表中。添加條目後表未更新


長的版本:我有一個使用一個Datasource Query Builder,以過濾掉已經被標記爲完成並交付項目的表。

所以該模型是SystemOrders,但該表的數據源是一個與添加的過濾器(SystemOrders_HideComplete)。所有這些工作正常。

當用戶爲數據庫創建一個新條目時,他們點擊一個「Add」按鈕,打開Page Fragment。他們可以輸入他們所有的數據並將其寫入,但是當Fragment關閉並且它不顯示新條目時,表格不會自動刷新。

刷新瀏覽器頁面或使用自定義按鈕重新加載數據源與表(列在下面)相同的頁面上會導致顯示新條目。

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

我試圖調整Submit按鈕的頁面片段與希望,這將節省用戶無需手動刷新頁面,但似乎並沒有工作之一:

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 
    } 
}); 

...或強制列表dat asource重新加載(在這種情況下,你會得到一個適合您的過濾器的新數據,但可能它會想念你的新項目):

​​
+0

調整頁面片段app.datasources.SystemOrders_HideComplete.modes.create完美地工作。謝謝! –