【问题标题】:How to implement paging with Linq to Xml?如何使用 Linq to Xml 实现分页?
【发布时间】:2011-11-23 00:30:37
【问题描述】:

从我的 rss 提要中检索图像时,我一直纠结于如何实现分页。我还有一个助手来呈现寻呼机链接的 html。但是我不确定在索引操作中该怎么做。我的代码如下:

在我的控制器中:

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

【问题讨论】:

    标签: asp.net-mvc-3 viewmodel data-paging


    【解决方案1】:

    我建议,在您的视图中创建一个表,并将 YUI 脚本添加到您的视图中。我使用它,它非常快。 看演示:http://beckelman.net/post/2008/10/23/Client-Side-Table-Sorting-Paging-and-Filtering-with-jQuery-Demo.aspx

    【讨论】:

      【解决方案2】:

      我使用 Troy Goode 的 PagedList 及其相关帮助程序实现了分页。我调用 ToPagedList 扩展方法并使用帮助程序呈现分页链接。我确实下载了帮助程序的源并对其进行了修改以呈现跨度而不是分页链接的无序列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        相关资源
        最近更新 更多