采用 XmlDataSource 数据源控件进行绑定,默认情况下是没有分页功能的,但是,我们可以采用 XPath 属性进行分页。下面就是一个简单的实现方法。完整的代码如下:
ASPX 代码
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
String page = Request.QueryString["page"];
if (String.IsNullOrEmpty(page)) page = "1";
int PageItem = 2; //每页显示的数量
int p = Convert.ToInt32(page);
if (p < 1) p = 1;
int StartItem = (p - 1) * PageItem + 1;
int EndItem = StartItem + PageItem;
XmlDataSource1.XPath = "/rss/channel/item[position() >= " + StartItem.ToString()
+ " and position() < " + EndItem.ToString() + "]";
Pager.InnerHtml = "<a href='?page=" + (p - 1).ToString() + "'>上一页</a> <a href='?page="
+ (p + 1).ToString() + "'>下一个</a>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataList ID="DataList1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
<div><a href='<%#XPath("lick")%>'><%#XPath("title")%></a></div>
</ItemTemplate>
</asp:DataList>
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="http://dotnet.aspx.cc/Rss.aspx"></asp:XmlDataSource>
<div id="Pager" runat="server"></div>
</form>
</body>
</html>