.NET中关于DataList 分页的问题
.NET中关于DataList分页的问题悬赏分:20-离问题结束还有12天8小时我在做datalist分页的时候是这样的我的首页要好几个栏目然后点击more的时候他将进入...
.NET中关于DataList 分页的问题
悬赏分:20 - 离问题结束还有 12 天 8 小时
我在做datalist分页的时候是这样的
我的首页要好几个栏目 然后点击more的时候他将进入相对应的栏目的more那个里,取出值进行绑定,然后点击下一页的时候,他的下一页将是这个栏目的下一页:比如说有两个栏目最新动态和文件通知,他们两个在数据库里的type_id分别为1,2.然后点击more的时候他将进入相对应的栏目里,然后通过type_id进行数据绑定。我是这样传值的:more.aspx?id=1
然后进入more页面
public partial class more : System.Web.UI.Page
{
public int more_typeid;
public int IDD;
OleDbConnection con;
int PageSize, RecordCount, PageCount, CurrentPage;
public void Page_Load(Object src, EventArgs e)
{
more_typeid = Convert.ToInt32(Request.Params["id"]);
... }
}
由于代码过长,百度只让些3000字。
第一次他可以显示,但是我点击下一页的时候就不行了。
请问我该怎么修改,或者有没有什么更好的方法?
那个PagedDataSource我也尝试过了也没用,他首次加载的时候也是可以的,但是我点击下一页的时候就没用了。
有哪位仁兄知道的给我指点一下,小弟不胜感激!!
more_typeid = Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"] = more_typeid;
con = new ...;
OleDbDataAdapter da = new OleDbDataAdapter("select * from info where info_typeid="+Convert.ToInt32( ViewState["moreid"].ToString())+"",con);
DataSet ds = new DataSet();
da.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource=ds.Tables[0].DefaultView ;
objPds.AllowPaging = true;
objPds.PageSize = 10;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath+"?Page=" + Convert.ToString((CurPage-1));
if (!objPds.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath +"?Page=" + Convert.ToString(CurPage + 1);
this.Score.DataSource = objPds;
this.Score.DataBind(); 展开
悬赏分:20 - 离问题结束还有 12 天 8 小时
我在做datalist分页的时候是这样的
我的首页要好几个栏目 然后点击more的时候他将进入相对应的栏目的more那个里,取出值进行绑定,然后点击下一页的时候,他的下一页将是这个栏目的下一页:比如说有两个栏目最新动态和文件通知,他们两个在数据库里的type_id分别为1,2.然后点击more的时候他将进入相对应的栏目里,然后通过type_id进行数据绑定。我是这样传值的:more.aspx?id=1
然后进入more页面
public partial class more : System.Web.UI.Page
{
public int more_typeid;
public int IDD;
OleDbConnection con;
int PageSize, RecordCount, PageCount, CurrentPage;
public void Page_Load(Object src, EventArgs e)
{
more_typeid = Convert.ToInt32(Request.Params["id"]);
... }
}
由于代码过长,百度只让些3000字。
第一次他可以显示,但是我点击下一页的时候就不行了。
请问我该怎么修改,或者有没有什么更好的方法?
那个PagedDataSource我也尝试过了也没用,他首次加载的时候也是可以的,但是我点击下一页的时候就没用了。
有哪位仁兄知道的给我指点一下,小弟不胜感激!!
more_typeid = Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"] = more_typeid;
con = new ...;
OleDbDataAdapter da = new OleDbDataAdapter("select * from info where info_typeid="+Convert.ToInt32( ViewState["moreid"].ToString())+"",con);
DataSet ds = new DataSet();
da.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource=ds.Tables[0].DefaultView ;
objPds.AllowPaging = true;
objPds.PageSize = 10;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath+"?Page=" + Convert.ToString((CurPage-1));
if (!objPds.IsLastPage)
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath +"?Page=" + Convert.ToString(CurPage + 1);
this.Score.DataSource = objPds;
this.Score.DataBind(); 展开
5个回答
展开全部
public void Page_Load(Object src, EventArgs e)
{
if(!IsPostBack)
{
more_typeid = Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"]=more_typeid;
... }
}
}
点下一页的时候传ViewState["moreid"].ToString()
不要传more_typeid,ViewState是页面级别变量,只要还在该页,这个变量值是不变的.
{
if(!IsPostBack)
{
more_typeid = Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"]=more_typeid;
... }
}
}
点下一页的时候传ViewState["moreid"].ToString()
不要传more_typeid,ViewState是页面级别变量,只要还在该页,这个变量值是不变的.
展开全部
楼主试用一下ViewState["page"]记录当前页,上下页相应改变其值+1 -1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我一般做换页的时候都是在一个数据集里面,根据点击下一页来刷新控件里面的值,比如:第一页显示20条数据,点击下一页那么控件里的值就从第21条开始显示,一次类推,你可以试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
兄弟你的Page_Load忘了第一次加载的代码了啊;
应该这样:
public void Page_Load(Object src, EventArgs e)
{
if(!IsPostBack)
{
more_typeid=Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"]=more_typeid;
...
}
}
快试试吧,兄弟
应该这样:
public void Page_Load(Object src, EventArgs e)
{
if(!IsPostBack)
{
more_typeid=Convert.ToInt32(Request.Params["id"]);
ViewState["moreid"]=more_typeid;
...
}
}
快试试吧,兄弟
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(!IsPostBack)
{
...........
}
{
...........
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询