我在Lighswitch應用程序中使用數據網格。網格具有每列可能性來過濾列。感謝lsEnhancedTableLightswitch加載所有數據或同步運行異步方法
現在我正在向Web api控制器發送一個ajax請求,其中包含要導出的客戶的ID列表。它可以工作,但有很多數據,所以速度非常慢,因爲我必須關閉數據分頁以獲取所有可見的客戶ID,以便遍歷VisualCollection。
爲了優化這個,我必須打開數據分頁到50條記錄,以便初始加載速度很快,並將數據加載到保存/導出到excel按鈕。
可能的解決方案:
- 加載數據的保存按鈕點擊的所有數據。爲此,我必須以某種方式加載所有項目,然後才能遍歷集合。
由於loadMore是異步的,下面的代碼會鎖定UI線程。如何同步加載所有數據?理想情況下,我想使用msls.showProgress進行某種進度視圖。
while(3<4)
{
if (screen.tblCustomers.canLoadMore) {
screen.tblCustomers.loadMore();
}
else
break;
}
var visibleItemsIds = msls.iterate(screen.tblCustomers.data)
.where(function (c) {
return c;
})
第二條本辦法將打開頁面,並通過剛剛由用戶應用到Web API控制器,所以我可以查詢數據庫,並僅返回過濾記錄的過濾器。但我不知道該怎麼做。
第三種方法是我現在正在使用的方法。關閉分頁 - >遍歷視覺集合,獲取客戶id,將它們傳遞給控制器並返回一個過濾的excel。有很多記錄時,這不起作用。
遍歷服務器端過濾的集合?我不知道Lighswitch有沒有辦法做到這一點?
第三個選項可以在javascript中實現客戶端。 – Kris