感謝所有在過去幾個月裏幫助過我的人,試圖幫助我使Silverlight/f#原型啓動並運行(從VS版本開始 - Ugh)。我們試圖解決的最後一個問題是RPC問題。F#Silverlight RPC:預填充分頁數據
我們需要能夠對RPC調用進行分頁,這樣第一頁被請求並綁定到網格並顯示,而otehr頁面在後臺預填充並連接在一起。我猜的僞代碼是這樣的:
let pageNo = 1
let page1Data = JsonRpc.getSomeData(pageNo)
let grid.datasource <- page1Data
let grid.suspendFiltering <- true
// run the remainder in background
let allData : list ref = page1Data ref
for pageNo in [2..totalPages]
allData := allData @ JsonRpc.getSomeData(pageNo)
let grid.datasource <- allData
let grid.suspendFiltering <- true
我appologize對於上面的代碼,我試圖使它作爲F#像越好(在本文撰寫窗口);另一個缺陷是需要使用回調將數據綁定到網格等。
問題方法可能用於解決這個問題,什麼是最合適的?
Hmmmmm ......我讀過這一遍又一遍的問題,並不能找出問題所在。如果你想得到你的整個數據集,請公開一個'JsonRpc.getAllData'方法來做到這一點。你的評論*「另一個缺陷是需要使用回調來將數據綁定到網格」*沒有上下文,因爲就我所知,你的'JsonRpc.getSomeData'方法看起來像一個同步方法,沒有參考到任何地方回調。唯一不尋常的是在循環中使用'@'而不是更習慣''yield! page1Data;頁面總頁數沒有收益! getSomeData(pageNo)]' – Juliet 2010-08-05 18:07:03
我看到了(不像我需要的那麼清晰) - 讓我們說每個分頁請求需要2秒來填充。如果我有10頁太長,用戶無法等待獲取所有數據。所以我想要顯示第一頁並在後臺填入其餘的數據集。在這個例子中,爲了簡單起見,我確實省略了回調。即使在一個更簡單的模型中,我仍然需要顯示一頁數據,獲取所有數據,然後將網格重新綁定到整個集合... 這是否澄清事情? – akaphenom 2010-08-06 02:00:57