2013-03-08 54 views
3

我目前正在構建Windows 8 Html/js應用程序,並開始使用gridview模板,因爲這樣可以省去大部分應用程序的樣式。在Windows 8中顯示特定數量的項目(Js/html)APP

我已成功設法將Windows 8分屏教程(http://msdn.microsoft.com/en-us/library/windows/apps/hh974582.aspx)改編爲我正在構建的應用程序。在這個應用程序中,我正在閱讀RSS源中的數據,就像在教程中一樣。但在我的例子中,我獲得了60多件物品。這很好,但我不想在我的主頁上顯示所有60個項目......我希望所有這些項目都顯示在groupDetails頁面中。

我現在做的是如下:在我的主屏幕上,我只想讓12個項目顯示,所以在我的data.js文件中,雖然通過所有帖子,我檢查這個,如果它是其中之一首先12,它會得到一個參考'秀',否則這是'隱藏'。像這樣:

for (var i = 0; i < posts.length ; i++) { 
     var post = posts[i]; 
     //get the title 
     var postTitle = post.querySelector("title").textContent; 
     //get the content 
     var staticContent = toStaticHTML(post.querySelector("content,encoded").textContent); 
     var ref = "show"; 
     if (i > 11) { 
      ref = "hide"; 
     } 
     //store the post info we care about 
     cPosts.push({ 
      group: feed, 
      backgroundImage: "http://www.thesedays.com/wp-content/uploads/2013/01/LTT_220_11.jpg", 
      key: feed.key, 
      ref: ref, 
      title: postTitle, 
      content: staticContent, 
      description: feed.description 
     }); 
    } 

現在我不熟悉datapromises,但我可以簡單的隱藏這些元素與.hide()(我加了jQuery庫到我的項目),但我不知道,當所有該項目被加載...

任何人都可以幫助我與此? 您可以在這裏查看完整的data.js文件http://msdn.microsoft.com/en-us/library/windows/apps/jj663506.aspx

+0

一般來說,我會說這是混合的用戶界面和數據模型。我更傾向於從cposts.slice(0,12)這樣的東西創建一個新的WinJS.Binding.List,並將該列表作爲您爲主頁分配給listView.groupDataSource的列表。我沒有機會嘗試,但也許它會讓你朝着正確的方向前進。 (例如,在C#/ XAML中,您只需將DataContext設置爲fullarray.Take(12),slice應該非常接近) – 2013-03-09 05:58:41

+0

tnx,它以這種方式工作!但我認爲會有更清潔的方式,然後再添加另一個列表。我真的很喜歡Windows 8的HTML/JS的方式,所以我認爲會有更清晰的方式。因爲你正在閱讀一個RSS feed,你有時可能不知道它有多大,你不想用200.000塊瓦片來過度用戶:) – HeremansY 2013-03-11 09:36:27

+0

好吧,我會問你是否會一次性降低20萬在這種情況下,無論如何也可以採用遞增加載。 – 2013-03-11 13:03:48

回答

1

如果我有足夠的信譽留下評論,我會有,因爲它似乎已經有一個工作解決方案。但我只是想提一個替代方案。您可以使用綁定列表的filtered projection,因爲您已在修改數據以標記要顯示的元素。代碼可能看起來像這樣:

cPosts.createFiltered(function (item) { 
    return item.ref === 'show'; 
}); 
相關問題