DateList以Xml为数据源的情况下,怎样写分页代码?xml文件:
<?xml version="1.0" encoding="gb2312"?><books><book>
<name>C++完美编程</name>
<price>29.9</price>
</book><book>
<name>Asp.net从入门到精通</name>
<price>78.6</price>
</book><book>
<name>Hello_World</name>
<price>1.0</price>
</book></books>我想在Asp页面下用DataList展示, 每页展示两个, 代码应给怎么写? 跪求大侠帮助!
<?xml version="1.0" encoding="gb2312"?><books><book>
<name>C++完美编程</name>
<price>29.9</price>
</book><book>
<name>Asp.net从入门到精通</name>
<price>78.6</price>
</book><book>
<name>Hello_World</name>
<price>1.0</price>
</book></books>我想在Asp页面下用DataList展示, 每页展示两个, 代码应给怎么写? 跪求大侠帮助!
解决方案 »
- .net Unable to load DLL 'libmySQL.dll': 拒绝访问。
- 请教一个问题,从我的地址栏传过来,只有一个数据,但名字不一样,如id 或者classID ,我不想指名,用什么方面可以接收,以前一直用querys
- 各位高手帮帮小弟的忙 (分数全给了)
- 如何隐藏页面的传递参数?
- C# 读取某一节点的值?
- 如何给某个 Table 的单元格赋值。在线等.....................................
- 请教异常处理错误
- 数组操作,---------------数组拆分,求个小算法
- 请GG,JJ们帮忙
- 关于模态窗体的问题请教?
- asp.net TreeView问题??
- 急!!asp.net中session怎么使用啊?
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("books.xml"));
XmlNode root = doc.SelectSingleNode("books");
Repeater1.DataSource = root.ChildNodes;
Repeater1.DataBind(); } <ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><%# XPath("name")%></li> </ItemTemplate>
</asp:Repeater>
</ul>
没有分页的。。分页的我要想想。有高手知道吗?
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using System.Xml;namespace WebApplication2
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Bindxml();
Bindxml2();
} } protected void Bindxml()
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("books.xml"));
XmlNode root = doc.SelectSingleNode("books");
Repeater1.DataSource = root.ChildNodes;
Repeater1.DataBind(); } protected void Bindxml2()
{
string filepath = Server.MapPath("books.xml");
DataSet ds = new DataSet();
ds.ReadXml(filepath);
DataTable dt = ds.Tables[0];
DataView dv = dt.DefaultView;
dv.Sort = "price desc"; PagedDataSource pds = new PagedDataSource();
pds.DataSource = dv;
pds.AllowPaging = true;
pds.PageSize = 2; int pageIndex = Convert.ToInt32(Request.QueryString["page"]);
if (pageIndex <= 1) pageIndex = 1;
pds.CurrentPageIndex = pageIndex - 1; this.Repeater2.DataSource = pds;
this.Repeater2.DataBind(); this.recTotal.Text = pds.DataSourceCount.ToString();
this.pageCount.Text = pds.PageCount.ToString();
this.pageIndex.Text = pageIndex.ToString(); if (pageIndex == 1)
this.hyHome.NavigateUrl = string.Empty;
else
this.hyHome.NavigateUrl = "?page=1"; if (pageIndex > 1)
this.hyPrev.NavigateUrl = "?page=" + (pageIndex - 1) + "";
else
this.hyPrev.NavigateUrl = string.Empty;
if (pageIndex < pds.PageCount)
this.hyNext.NavigateUrl = "?page=" + (pageIndex + 1) + "";
else
this.hyNext.NavigateUrl = string.Empty;
if (pageIndex >= pds.PageCount)
this.hyEnd.NavigateUrl = string.Empty;
else
this.hyEnd.NavigateUrl = "?page=" + (pds.PageCount) + "";
}
}
}<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<ul>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li><%# XPath("name")%>--<%#XPath("price") %></li> </ItemTemplate>
</asp:Repeater>
</ul>
</div>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<li><%# Eval("name")%>--<%#Eval("price") %></li>
</ItemTemplate>
</asp:Repeater>
<ul>
<li>
<asp:HyperLink ID="hyHome" runat="server" Text="首页"></asp:HyperLink>
<asp:HyperLink ID="hyPrev" runat="server" Text="上一页"></asp:HyperLink>
<asp:HyperLink ID="hyNext" runat="server" Text="下一页"></asp:HyperLink>
<asp:HyperLink ID="hyEnd" runat="server" Text="尾页"></asp:HyperLink>
共 <asp:Literal ID="recTotal" runat="server"></asp:Literal> 项,<asp:Literal ID="pageCount" runat="server"></asp:Literal> 页,当前第 <asp:Literal ID="pageIndex" runat="server"></asp:Literal> 页
</li>
</ul>
</form>
</body>
</html>
在绑定到datalist,多列设置RepeatColumns
分页可使用aspnetpager控件
按标题排序吗?这个你的XML里的字段是name。所以你应该写[name] desc.