100分,问关于分页简单问题,在线等,解决立刻结帖,急啊

时间:2022-09-17 19:01:14
我使用Repeater做分页,其它的都差不多了,只是在点击翻页时,比如:
private void IMG5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
int intNextPageIndex = Convert.ToInt32( Session["page"] ) + 1; 
Response.Redirect( "g1messegedisp.aspx?page=" + intNextPageIndex.ToString() ); 
}

程序不进入PageLoad里,这样我写在PageLoad里的
if ( Request.QueryString["page"] == null || Request.QueryString["page"].ToString()  == "" ) 
Session["page"] = 1 ; 
else 
Session["page"] = Convert.ToInt32( Request.QueryString["page"] ); 
就无法执行了,想问问大家我应该是哪里出的问题,谢谢.

35 个解决方案

#1


ding

#2


请使用aspnetpager分页工具.自定义分页啦.简单多啦

#3


如果想省事就用DATAGRID,里面有分页功能很简单.
在PageIndexChanged事件中写上如下代码并将datagrid设置为分页就行了
datagrid1.CurrentPageIndex = e.NewPageIndex;

#4


试问你的g1messegedisp.aspx个页面是否是你要做分页的页面,如果是,你做Response.Redirect("g1messegedisp.aspx?page=" + intNextPageIndex.ToString());的操作,肯定会重新进行page_load操作的,因为你页面上的操作,首先进行page_load()操作,然后执行private void IMG5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
这里的操作,但是你在private void IMG5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
操作中又招待了,Response.Redirect()页面重转移操作,那么,page_load操作还是要执行的。
因此你所说的情况不可能出现。你可以设置段点测试一下。
顶.....

#5


你的Response.Redirect( "g1messegedisp.aspx?page=" + intNextPageIndex.ToString() );是重定向到自己吗?
如果是则则注意你的PageLoad()将调用两次
1、在你的IMG5_Click执行前
2、在你的Response.Redirect之后

#6


libaconnet(闲居散人)分析正确.

#7



if ( Request.QueryString["page"] == null || Request.QueryString["page"].ToString()  == "" ) 
改成
if ( Request["page"] == null || Request["page"].ToString() == "" )
试试。

#8


http://www.qqday.net/web/ASPNET/NETFramework/27.asp

#9


我的PageLoad在换页过程中只调用了一次,在在你的IMG5_Click执行前执行的,if (page.postback)里的代码.

#10


我再顶

#11


争取在下班前解决问题,再顶

#12


帮顶,接分

#13


问题就在你这句话上:if(page.postback)
这句话的意思是说只有是回传页时才执行if中的语句,而你Response.redirect后,它是中断当前请求,了另一个请求来重新访问该页面.你要换成if(!Page.postback)它肯定走这句话

#14


我代码里写的是if (!Page.IsPostBack){...}else{...}
IMG5_Click执行前执行的执行的是else{...}
Response.Redirect之后没有执行if (!Page.IsPostBack){...}这部分的代码,我想知道是为什么?

#15


mark

#16


搬把椅子

#17


?

#18


关注

#19


我也有同样的问题,可是没分发帖子问了

#20


学习

#21


我再顶,老大们,分不够我再开帖啊,帮帮忙啊

#22


还没解决?
把你的代码贴上来,大家好帮你实际解决

#23


我代码里写的是if (!Page.IsPostBack){...}else{...}
IMG5_Click执行前执行的执行的是else{...}
Response.Redirect之后没有执行if (!Page.IsPostBack){...}这部分的代码,我想知道是为什么?

解釋如下
-----------------------------------------------------------------
Response.Redirect()一般都是用於從某一頁面跳轉到的另一頁面,跳轉就是一個新的請求,而頁面能夠試別IsPostBack,主要是ViewState機制實現,而Response.Redirect就是一跳轉到另一頁,是新的請求,即肯定是第一次訪問啊

#24


對上再強調Response.Redirect,哪怕是跳轉到同一頁面,也是一個新的請求

#25


1.用DataGrid实现,简单多了
2.将Button改为Label,具体写法如下:

label.Text = <a herf="g1messegedisp.aspx?page=" + intNextPageIndex.ToString()>下一页</a> 

#26


up

#27


可以把数据源翻一页再重新绑定.

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objDs.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 20;
int CurPage;

在事件函数里将objPds.CurrentPageIndex值更新,再重新绑定.

Repeater1.DataSource=objPds;
Repeater1.DataBind();


这样再也不用靠传参数翻页了.

#28


反正都是用session,你就要传过去啊!用session试度啊!还有就是你把判断去掉试一下,看它是否会走Page_Load,如果会走的话,那就证明你的判断有错了

#29


一个分页,用session,强烈不推荐!

#30


用datagrid的自动分页实现最好!(简单,数据量不大)
   用存储过程分页对页面实现比较困难,但在数据量大的时候效率比较好!
   我在编写asp.net实现分页的时候都采用这两种结合的方法。不知道Repeater可以分页.
   不过我也觉得用session不好!
   ding..................

#31


to 楼主:
没有理由的,若用Response.Redirect(".aspx")
它必定执行if(!IsPostBack) 看看程序有无其它方面问题

#32


对不起大家,我是白痴,我缺心眼,

我把Response.Redirect后面的页面地址写错了,

非常抱歉耽误了大家这么多宝贵时间

感谢大家的积极参与

结帖了

#33


呵呵!!

#34


eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,能够解决在IE浏览器中打印各种复杂的中国式报表及票据。

#35


搬把椅子

#1


ding

#2


请使用aspnetpager分页工具.自定义分页啦.简单多啦

#3


如果想省事就用DATAGRID,里面有分页功能很简单.
在PageIndexChanged事件中写上如下代码并将datagrid设置为分页就行了
datagrid1.CurrentPageIndex = e.NewPageIndex;

#4


试问你的g1messegedisp.aspx个页面是否是你要做分页的页面,如果是,你做Response.Redirect("g1messegedisp.aspx?page=" + intNextPageIndex.ToString());的操作,肯定会重新进行page_load操作的,因为你页面上的操作,首先进行page_load()操作,然后执行private void IMG5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
这里的操作,但是你在private void IMG5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
操作中又招待了,Response.Redirect()页面重转移操作,那么,page_load操作还是要执行的。
因此你所说的情况不可能出现。你可以设置段点测试一下。
顶.....

#5


你的Response.Redirect( "g1messegedisp.aspx?page=" + intNextPageIndex.ToString() );是重定向到自己吗?
如果是则则注意你的PageLoad()将调用两次
1、在你的IMG5_Click执行前
2、在你的Response.Redirect之后

#6


libaconnet(闲居散人)分析正确.

#7



if ( Request.QueryString["page"] == null || Request.QueryString["page"].ToString()  == "" ) 
改成
if ( Request["page"] == null || Request["page"].ToString() == "" )
试试。

#8


http://www.qqday.net/web/ASPNET/NETFramework/27.asp

#9


我的PageLoad在换页过程中只调用了一次,在在你的IMG5_Click执行前执行的,if (page.postback)里的代码.

#10


我再顶

#11


争取在下班前解决问题,再顶

#12


帮顶,接分

#13


问题就在你这句话上:if(page.postback)
这句话的意思是说只有是回传页时才执行if中的语句,而你Response.redirect后,它是中断当前请求,了另一个请求来重新访问该页面.你要换成if(!Page.postback)它肯定走这句话

#14


我代码里写的是if (!Page.IsPostBack){...}else{...}
IMG5_Click执行前执行的执行的是else{...}
Response.Redirect之后没有执行if (!Page.IsPostBack){...}这部分的代码,我想知道是为什么?

#15


mark

#16


搬把椅子

#17


?

#18


关注

#19


我也有同样的问题,可是没分发帖子问了

#20


学习

#21


我再顶,老大们,分不够我再开帖啊,帮帮忙啊

#22


还没解决?
把你的代码贴上来,大家好帮你实际解决

#23


我代码里写的是if (!Page.IsPostBack){...}else{...}
IMG5_Click执行前执行的执行的是else{...}
Response.Redirect之后没有执行if (!Page.IsPostBack){...}这部分的代码,我想知道是为什么?

解釋如下
-----------------------------------------------------------------
Response.Redirect()一般都是用於從某一頁面跳轉到的另一頁面,跳轉就是一個新的請求,而頁面能夠試別IsPostBack,主要是ViewState機制實現,而Response.Redirect就是一跳轉到另一頁,是新的請求,即肯定是第一次訪問啊

#24


對上再強調Response.Redirect,哪怕是跳轉到同一頁面,也是一個新的請求

#25


1.用DataGrid实现,简单多了
2.将Button改为Label,具体写法如下:

label.Text = <a herf="g1messegedisp.aspx?page=" + intNextPageIndex.ToString()>下一页</a> 

#26


up

#27


可以把数据源翻一页再重新绑定.

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objDs.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 20;
int CurPage;

在事件函数里将objPds.CurrentPageIndex值更新,再重新绑定.

Repeater1.DataSource=objPds;
Repeater1.DataBind();


这样再也不用靠传参数翻页了.

#28


反正都是用session,你就要传过去啊!用session试度啊!还有就是你把判断去掉试一下,看它是否会走Page_Load,如果会走的话,那就证明你的判断有错了

#29


一个分页,用session,强烈不推荐!

#30


用datagrid的自动分页实现最好!(简单,数据量不大)
   用存储过程分页对页面实现比较困难,但在数据量大的时候效率比较好!
   我在编写asp.net实现分页的时候都采用这两种结合的方法。不知道Repeater可以分页.
   不过我也觉得用session不好!
   ding..................

#31


to 楼主:
没有理由的,若用Response.Redirect(".aspx")
它必定执行if(!IsPostBack) 看看程序有无其它方面问题

#32


对不起大家,我是白痴,我缺心眼,

我把Response.Redirect后面的页面地址写错了,

非常抱歉耽误了大家这么多宝贵时间

感谢大家的积极参与

结帖了

#33


呵呵!!

#34


eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,能够解决在IE浏览器中打印各种复杂的中国式报表及票据。

#35


搬把椅子