留言簿

我要留言
留言搜索

2007-02-12 15:40  hanzify

请教一个问题,我用的是Vs2005 + AspNetPager 6.0 + Url分页,代码大致这样<br>    protected void Page_Load(object sender, EventArgs e)<br>    {<br>        if (!IsPostBack)<br>        {<br>            Data_Bind();<br>        }<br>    }<br>    public void Data_Bind()<br>    {<br>//数据绑定<br>}<br>    protected void InfoList_PageChanged(object sender, EventArgs e)<br>    {<br>        Data_Bind();<br>    }<br><br>这样在sql的时间探查器中没换页或是刷新会执行两组查询,正常情况是1组(一次取数据,一次取数量),其中第一组查询的pageindex必定是1,比如说我点第一页,第一组查询的pageindex是1,点第其他页,第一组查询的pageindex还是1,<br><br>如果我把 Page_Load中的Data_Bind()去掉,则点击分页时都是第一页,且网址的page参数有变,控件的当前页却没变<br>如果我把 InfoList_PageChanged中的Data_Bind()去掉,点击分页时都是第一页,但控件的当前页有变化<br><br>不知道这是什么原因?
回复:用url分页不需要在Page_Load中绑定数据,而应该在这个方法中给RecordCount赋值,不能在分页时才给RecordCount赋值,否则就无法正确分页。谢谢!

2007-02-12 10:41  homeofcat

老师:<br>   这个现象我已经解决了。<br>   当页面中设置其EnableViewState=false;<br>则当前索引值CurrentPageIndex就不可设置。<br>谢谢老师。
回复:好!

2007-02-12 10:09  homeofcat

老师:<br>   这个现象是我在调试中发现的。CurrentPageIndex总是等于1。<br>首先在PageLoad方法中if(!IsPostBack)方法中绑定了数据源。<br>然而在翻页处理事件中 (PageChanged)<br>分页控件名.CurrentPageIndex   =e.NewPageIndex;<br>但e.NewPageIndex 为 2 ,CurrentPageIndex 就是为1<br><br>出现这种现象有可能是哪些因素造成的?

2007-02-11 22:24  homeofcat

老师:<br>  你好!<br>   我在整个站点中采用您提供的分页控件。在某些页面中有时会出现当前页索引值无法获取到。<br>    如<br>     1、在翻页处理事件中  (PageChanged)<br>   分页控件名.CurrentPageIndex =e.NewPageIndex;<br>   ...<br>   (后面是数据绑定)<br>-----------------<br>   当执行后的结果是:<br>   分页控件名.CurrentPageIndex  =1<br>   2、通过URL传值控制页面的分页数值其当前页索引值也是同上的结果<br><br>出现这种情况应该如何处理(分析)?<br>(在某些页面完全是可以取得其索引值的)<br>  恳请老师给与批注下。不胜感激!<br>   急盼中。。。<br>   谢谢老师!
回复:从没有见过这种现象,你怎么知道CurrentPageIndex总是等于1呢?仔细检查一下数据绑定代码看是否正确,尤其注意是否是在Page_Load方法中if(!IsPostBack)块中绑定的,如果用Url分页,请不要在Page_Load方法中绑定数据,在分页事件处理程序中绑定一次即可。另外分页控件的最新版本是6.0.0,这个版本中已不需要再在分页事件处理程序中手工设置CurrentPageIndex的值,控件会自动设置。

2007-02-09 19:54  qpg184926

你好,在您做的4.3里面的AspNetPager分页示例之查询分页例子中,我想把存储过程中的heading字段名用@a变量,换了之后为什么不能显示数据?<br><br>CREATE procedure wqnews_GetSearchResult  <br><br>(@a char,<br><br>@skey NVarChar(100),  <br><br>@pagesize int,  <br><br>@pageindex int,  <br><br>@docount bit)  <br><br>as  <br><br>set nocount on  <br><br>if(@docount=1)  <br><br>select count(newsid) from wqnews where heading@a like '%'+ @skey+'%'<br><br>else  <br><br>begin  <br><br>declare @indextable table(id int identity(1,1),nid int)  <br><br>declare @PageLowerBound int  <br><br>declare @PageUpperBound int  <br><br>set @PageLowerBound=(@pageindex-1)*@pagesize  <br><br>set @PageUpperBound=@PageLowerBound+@pagesize  <br><br>set rowcount @PageUpperBound  <br><br>insert into @indextable(nid) select newsid from wqnews where heading@a like '%'+ @skey+'%' <br><br>select *  from wqnews O,@indextable t where O.newsid=t.nid  <br><br>and t.id&gt;@PageLowerBound and t.id&lt;=@PageUpperBound  <br><br>end  <br><br>set nocount off<br><br>GO
回复:对不起,我没有看懂您的代码,heading字段用变量@a代替,heading@a 这个是怎么回事呢?如果您的意思是动态的SQL语句,那么必须用exec命令来执行这样的语句,而且在这个过程中没办法用表变量,只能用临时表才行。

2007-02-09 13:22  qpg184926

我把AspNetPager的Enable属性设为false里面的上一页下一页怎么都还能点啊
回复:谢谢您的反馈,我试了一下确实如此,虽然超链接的颜色都变灰了,但仍然可点,这应该算是一个bug,是我没有在控件中处理Enabled=false的情况而引起的,我会抽时间尽快修正这个bug,再次感谢您发现并报告这个问题!

2007-02-08 14:33  jyk

原来03年就有了这个控件呀,那时我才刚刚开始学习asp.net。<br>前辈呀。<br>向你学习。
回复:互相学习,共同进步。谢谢!

2007-02-08 11:11  lxysjl

你好,现在我IIS本来就用重写的.你的分页也支持重写,但是我碰到一个困难.看我的地址.<br>http://localhost/newsone(第一个参数)_two(第二个参数)_three(你的分页参数)<br>.html<br>我用.net2.0已经重写了<br>http://localhost/news.aspx?one=1&amp;tow=2&amp;page=3<br>的格式,但是你的分页我的转向我该怎么写.还有,我怎么用EnableUrlRewriting,UrlRewritePattern<br>这二个参数时,.NET说不是有效属性.如果回复,请发邮箱<br>nng12345@163.com
回复:不是有效属性?莫非您用的AspNetPager不是6.0.0版?需要Url重写的话首先要设置EnableUrlRewriting=true,然后设置UrlRewritePattern,您上面的例子中,UrlRewritePattern应该是“./news%one%_%two%_{0}.html”,更多详细信息请参考帮助文档。谢谢!

2007-02-08 10:14  d8q8

搞定自定义HTML区,原来有默认为Never。呵呵~~,继续研究。

2007-02-08 10:12  qpg184926

存储过程用6.0的,绑定代码用4.3上的行吗?
回复:您好,两者没有任何直接联系,存储过程您自己写也可以,关键是您需要知道怎么设置它的参数以及参数的值从哪里来。谢谢!
;