联表分页怎么搞啊! 我用联表查询,返回的是DataSet , 而我分页里写的方法,是要传入表名、主键... 、我在页 调 那个分页方法,可是我传的ds, 不对, 那要怎么做啊, 是写一个传入ds的分页方法, 还是写 一个 联表返回DataTable 的方法,也不行啊,没有表名。????? 各位, 帮帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把dataset中数据用list存起来使用PagedDataSouse类分页 你的分页方法的表名取值为dataset.Tables[0]就行了 public void Page_Load(Object src,EventArgs e) { //对PagedDataSource 对象的相关属性赋值 PagedDataSource objPds = new PagedDataSource(); objPds.DataSource = ds.Tables[0].DefaultView; objPds.AllowPaging = true; objPds.PageSize = 5; int CurPage; //当前页面从Page查询参数获取 if (Request.QueryString["Page"] != null) CurPage=Convert.ToInt32(Request.QueryString["Page"]); else CurPage=1; objPds.CurrentPageIndex = CurPage-1; lblCurrentPage.Text = "Page: " + CurPage.ToString(); if (!objPds.IsFirstPage) lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage) lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1); //把PagedDataSource 对象赋给Repeater控件 Repeater1.DataSource=objPds; Repeater1.DataBind(); } 这样搞过,点下一页没反应! 你是用lnkPrev和lnkNext来进行翻页的么 那么给这两个加点击事件就好了啊private int Peger{ get { return (int)ViewState["page"]; } set { ViewState["page"]=value; }}if(!IsPostBack){ ViewState["page"]=0; BangDing();}privat void BangDing(){ PagedDataSource objPds = new PagedDataSource(); objPds.DataSource = ds.Tables[0].DefaultView; objPds.AllowPaging = true; objPds.PageSize = 5; objPds.CurrentPageIndex=Pager; Repeater1.DataSource=objPds; Repeater1.DataBind(); }lnkPrev和lnkNext 点击事件分别是{ Page--; BangDing()}{ Page++; BangDing()} 用分頁的存儲過程講所有的數據查出放到臨時表中,在根據傳進的 pagesize 和pageindex 來從臨時表中取出相應的數據返回 如果两个表的结构是一样的~~那么就将两个DATATABLE里的数据合到一个里面,然后传参的时候就传那个DATATABLE vs编译运行成功并发布网站成功,但是发布的网站打开的网页中文本框、按钮控件不能显示 sqlce做的网站遇到问题,请教一下了! 搞了几天了,再发一贴! 微创的面试题?? 有人这样种毒?所有HTML 和ASPX ASP 文件全都 被添加了 JS 执行文件 操作word的一些样式问题 关于DropDownList的绑定问题 asp.net中如何从交换机中取出来电 求助如下问题! fckeditor如何调用其预览方法啊 每次修改WEB中的一个文件cs代码,怎样只发布这个修改的文件,然后上传?而不是发布整个网站. 200分求教!模拟post登录aspx页面的问题,急!
使用PagedDataSouse类分页
public void Page_Load(Object src,EventArgs e)
{
//对PagedDataSource 对象的相关属性赋值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage; //当前页面从Page查询参数获取
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1; objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString(); if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1); //把PagedDataSource 对象赋给Repeater控件
Repeater1.DataSource=objPds;
Repeater1.DataBind();
} 这样搞过,点下一页没反应!
那么给这两个加点击事件就好了啊private int Peger
{
get
{
return (int)ViewState["page"];
}
set
{
ViewState["page"]=value;
}
}if(!IsPostBack)
{
ViewState["page"]=0;
BangDing();
}privat void BangDing()
{
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
objPds.CurrentPageIndex=Pager;
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}lnkPrev和lnkNext 点击事件分别是
{
Page--;
BangDing()
}{
Page++;
BangDing()
}