Gridview绑定的XMl数据源,用aspnetpager分页没有效果,各位帮我看看

pgameli 2009-06-19 03:43:38
rt

Gridview绑定的是XML,我这样写的分页事件怎么没有分页效果啊,pagesize是10个,但是在第一页全部显示出来了

/// <summary>
/// 绑定数据
/// </summary>
private void BindDataList()
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("zufen.xml"));

AspNetPager1.RecordCount = ds.Tables[0].Rows.Count;
GridView1.PageIndex = AspNetPager1.CurrentPageIndex;
GridView1.PageSize = AspNetPager1.PageSize;
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}

protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BindDataList();
}
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pgameli 2009-06-19
  • 打赏
  • 举报
回复
我想到办法解决了,应该这样写
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = AspNetPager1.PageSize;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
GridView1.DataSource = pds;
GridView1.DataBind();

谢谢各位
指间的风 2009-06-19
  • 打赏
  • 举报
回复
呵呵,现在得点分真不容易啊。
nosuchtracter 2009-06-19
  • 打赏
  • 举报
回复
楼上说错了,用第三方控件,分页就应该禁掉

GridView1.AllowPaging = false;

这句就把所有数据绑定了,所以显示的所有数据

GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();

参考下吴旗娃自己写的代码

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable tbl = loadFromXMLOrCache();
AspNetPager1.RecordCount = tbl.Rows.Count;
}
}

DataTable loadFromXMLOrCache()
{
DataTable tbl = (DataTable)Cache[cacheKey];
if (null == tbl)
{
string xmlFile = Server.MapPath("~/app_data/orders.xml");
tbl = new DataTable();
tbl.ReadXml(xmlFile);
CacheDependency dep = new CacheDependency(xmlFile);
Cache.Insert(cacheKey, tbl, dep);
}
return tbl;
}

protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
DataTable tbl= loadFromXMLOrCache();
if (tbl != null && tbl.Rows.Count > 0)
{
DataView dv = tbl.DefaultView;
dv.Sort = "orderid desc";
DataTable srcTbl = tbl.Clone();
for (int i = AspNetPager1.StartRecordIndex; i <= AspNetPager1.EndRecordIndex; i++)
{
srcTbl.ImportRow(dv[i-1].Row);
}
Repeater1.DataSource = srcTbl;
Repeater1.DataBind();
}
}
luna1106 2009-06-19
  • 打赏
  • 举报
回复
GridView1.AllowPaging = true;
试试

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧