2011-11-23 56 views
0

我被困在如何從我的rss提要中檢索圖像時執行分頁。我也有一個幫助器來爲分頁器鏈接呈現html。但是我不確定在索引操作中該怎麼做。我的代碼如下:如何實現Linq到Xml的分頁?

在我的控制器:

Public Function Index() As ActionResult 
     Dim feedurl As String = "http://riderdesign.net/p290530166/recent.rss" 
     Using x = XmlReader.Create(feedurl) 
      Dim r = XDocument.Load(x) 
      Dim mediapfx As XNamespace = "http://search.yahoo.com/mrss/" 
      ' Dim rssfeed = SyndicationFeed.Load(x) 
      Dim ml = From item In r.Descendants(mediapfx + "content") Select item 
      Dim PageSize As Integer = Configuration.ConfigurationManager.AppSettings.Get("PageSize") 

      Dim medialist = From item In r.Descendants("item") Select New MediaImage With { 
      .Alt = item.Element("title"), .ImageUrl = item.Element("link"), .ThumbnailUrl = TryGetAttributeValue(item.Element(mediapfx + "thumbnail"), "url"), .Height = TryGetAttributeValue(item.Element(mediapfx + "thumbnail"), "height"), .Width = TryGetAttributeValue(item.Element(mediapfx + "thumbnail"), "width")} Take PageSize 
      Return View(medialist) 

     End Using 

    End Function 

PagedData類:

Public Class PagedData 
    Public Property TotalItems As Integer 

    Public Property ItemsPerPage As Integer 

    Public Property CurrentPage As Integer 

    ReadOnly Property TotalPages As Integer 
     Get 
      Return Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(TotalItems/ItemsPerPage))) 
     End Get 
    End Property 

End Class 

我的傳呼視圖模型

mvcPublic Class PagingViewModel 
    Property Images As IEnumerable(Of MediaImage) 
    Property Paging As Pager 

End Class 

尋呼幫手:

Public Class PagingHelper 
    Public Shared Function PageLinks(ByVal html As HtmlHelper, ByVal Page As Pager, ByVal pageUrl As Func(Of Integer, String)) As MvcHtmlString 
     Dim r As StringBuilder = New StringBuilder 
     For i = 1 To Page.TotalPages 
      Dim tag As TagBuilder = New TagBuilder("a") 
      tag.MergeAttribute("href", pageUrl(i)) 
      tag.InnerHtml = i.ToString 
      If i = Page.CurrentPage Then 
       tag.AddCssClass("selected") 
       r.Append(tag.ToString) 

      End If 
      Return MvcHtmlString.Create(r.ToString) 
     Next 

    End Function 

回答

0

我使用Troy Goode的PagedList及其關聯的助手實現了分頁。我調用ToPagedList擴展方法,並使用助手來呈現分頁鏈接。我確實下載了輔助程序的源代碼,然後對其進行了修改,以便爲分頁鏈接呈現跨區而不是無序列表。