一个页面上有搜索功能和分页功能,搜索后的数据也要进行分页,代码应该怎么写?我用的是datalist

我的是绑定页面加载时候的DataTable
2024-12-24 19:17:16
推荐回答(3个)
回答1:

datalist不像datagrid有自带分页功能,不过你可以自己写一个。
给你个思路:
首先得从数据库查询出来的记录条数。再根据每页多少条记录,进行自定义分页,你可能建立一个简单的分页控件:
上一页直接把要显示的第几页传参数给页面。
从数据只查询指定页的数据,再绑定即可

回答2:

中间的参数自己带上
protected string Title()
{
StringBuilder sb = new StringBuilder();
int PageCount = (DataCount + PageSize - 1) / PageSize;
int StartTag = PageIndex / PageTag == 0 ? 1 : (PageIndex / PageTag) * PageTag;
int EndTag = (PageIndex / PageTag + 1) * PageTag;
sb.Append("

");
if (PageIndex > PageCount)
{
throw new ApplicationException("页索引不能大于总页数!");
}
else
{
sb.Append("首页 ");
if (PageIndex == 1)
{
sb.Append("上一页 ");
}
else
{
sb.Append("上一页 ");
}
if (DataCount <= PageSize)//总数据小于每页显示数据
{
for (int i = 1; i <= PageCount; i++)
{
sb.Append("" + i + " ");
}
}
else
{
if (PageCount <= EndTag) //判断最后是否满足翻页按钮
{
for (int i = StartTag; i <= PageCount; i++)
{
sb.Append("" + i + " ");
}
}
else
{
for (int i = StartTag; i <= EndTag; i++)
{
sb.Append("" + i + " ");
}
}
}

if (PageIndex == PageCount)
{
sb.Append("下一页 ");
}
else
{
sb.Append("下一页 ");
}
sb.Append("末页 ");
sb.Append("跳转 ");
}

sb.Append("页码:" + PageIndex + " 总页数: 总数据:" + DataCount + " ");
sb.Append("
");
return sb.ToString();
}

回答3:

我说个简单的方法
用pageddatasource类吧,这样绑定

数据绑定的时候
private void Bind()
{
datatable dt=。。。;
pageddatasource ps=new pageddatasource();
ps.allowpaging=true;
ps.pagesize=10;
ps.datasource=dt;
this.datalist.datasource=ps;
this.databind();
}