留言簿
留言成功,请等待站长审核,谢谢支持!
2008-02-28 10:58 hnez
我的使用心得,与大家分享:<br>适用与只查询数据库一次的情况:<br>代码里的td1 是我根据筛选条件到数据库oracle里查询得到的DataTable,我不希望分页时再去查,所以我利用Cache保存起来,需要:using System.Web.Caching;<br><br>////////////////////////////////////////////////////分页成功代码<br> Cache.Remove("Table1");<br> Cache.Add("Table1", dt1, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20), CacheItemPriority.Default, null);<br><br> DataTable dt2 = dt1.Clone();<br> int iPageSize=AspNetPager1.PageSize;<br> if (dt1.Rows.Count > AspNetPager1.PageSize)//如果大于一页就分页<br> {<br> for (int i = 0; i < iPageSize; i++)<br> {<br> dt2.ImportRow(dt1.Rows[i]);<br> }<br> }else<br>{<br> dt2=dt1.copy();<br>}<br> if (dt2.Rows.Count == 0)<br> {<br> dt2.Rows.Add(dt2.NewRow());<br> Label1.Text = "没有找到数据!";<br> }<br> <br> GridView1.DataSource = dt2;<br> GridView1.DataBind();<br> AspNetPager1.RecordCount = dt1.Rows.Count;<br> ////////////////////////////////////////////////////分页成功代码<br> }<br> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)<br> {<br> if (e.Row.RowType == DataControlRowType.DataRow)<br> {//为了加序号<br> int i = AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex-1) + e.Row.DataItemIndex + 1;<br> e.Row.Cells[0].Text = i.ToString();<br> }<br> }<br> protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)<br> {<br> ////////////////////////////////////////////////////分页成功代码<br> DataTable dt3 = (DataTable)Cache.Get("Table1");//获得数据源<br> DataTable dt4 = dt3.Clone();<br> int iPageSize = AspNetPager1.PageSize;<br> int iPageIndex = e.NewPageIndex;<br> if (dt3.Rows.Count > iPageSize * (iPageIndex))//如果新页够一整页<br> {<br> for (int i = iPageSize * (i
2008-02-28 10:12 xsjgyhl
如果是大数据量的分页,比如百万级的,分页效果怎么样,是跟控件有没有关系,只是跟服务器和数据库有关吗?
回复:是的,和分页控件没有任何关系,这和您的数据获取方法以及服务器的硬件配置等有关。谢谢!
2008-02-28 10:06 xsjgyhl
.net 1.1是否可以用,<br>还有就是可以用任意的字段进行排序分页吗?谢谢!
回复:您好,.Net框架1.1版只能用AspNetPager 4.3.5版,最新的版本不支持.net 1.1。至于排序的问题,和分页控件没有任何关系,您可以自己控制。谢谢!
2008-02-27 14:29 pp8000
接上一问题。<br><br>您看,我在 vs.net2005 中使用 AspNetPager6.0的版本,同样的用法,您看,外观非常规矩,也非常漂亮。<br><br>http://www.pp8000.com/HtmlNews/MoreNews.aspx<br><br>可是您现在的 AspNetPager7.02版本现在要想实现上面的那种分页外购,确实会出现问题。就是 CustomInfoSection 中的自定义内容 不能与右侧 的分页内容平行在一条线上,会高出一块,导致外观非常不和谐。请老大一试!!!!
回复:您好,AspNetpager分页控件从7.0版起就把自定义信息区和分页导航栏改为用div标签而不是原来的table来实现,文字没对齐的问题主要是因为按钮和文本框导致的,您可以用我对您上一个问题的回复中的办法来解决这个问题。谢谢!
2008-02-27 14:24 zerohk
请问一下,用AspNetPager,结合asp.net ajax中的updatepanel和UrlRewritingNet.UrlRewriter.dll<br>出现了错误,分页不成功,如果单独asp.net ajax中的updatepanel,或者单独<br>UrlRewritingNet.UrlRewriter.dll就可以,请问如何解决?
回复:您好,您是否使用了AspNetPager分页控件的Url分页功能和通过UrlRewritingNet组件实现分页后的Url重写?UpdatePanel只适用于页面回发的情况下不刷新页面而和服务器端实现交互,如果您使用了AspNetPager的Url分页功能,分页是通过打开新页面实现的,所以UpdatePanel对分页控件没有任何作用。谢谢!
2008-02-27 14:23 pp8000
AspNetPager 7.0.2 版本外观上有问题<br><br>如题如下图所示:<br>http://www.pp8000.com/uploads/demos/dem.gif<br><br>代码如下:<br><br><td width="90%"><br> <div align="center"><br> <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="True" FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" ShowCustomInfoSection="Left" ShowInputBox="Always" ShowPageIndex="False" TextAfterInputBox=" 页 " TextBeforeInputBox="转到第 " OnPageChanged="AspNetPager1_PageChanged" PageSize="33" ShowPageIndexBox="Always"><br> </webdiyer:AspNetPager><br> </div><br> </td><br><br>--------------<br><br>我从 .net1.0 就开始使用您的分页控件,以前从没有出现过这样的问题,请老大自已试一下是否有这样的情况。
回复:您好,这个问题是由于文本框和按钮引起的,按钮和文字在同一区域时,文字默认和按钮是底部对齐,您可以暂时通过设置如下属性解决这个问题: InputBoxStyle="vertical-align:text-top" SubmitButtonStyle="vertical-align:text-top" ,效果可以查看本留言簿下的分页效果。谢谢!
2008-02-27 10:49 zonego
问题解决了.原来三层结构使用分页工具用到的存储过程与用您这网站里的代码工具生成的存储过程不同.代码生成工具生成的代码是:(@pageindex-1)*@pagesize+1 and (@pageindex-1)*@pagesize+@pagesize<br>而三层结构用到的存储过程应把上述代码改为: @pageindex and @pageindex+@pageSize-1
回复:解决了就好。谢谢!
2008-02-27 10:31 zonego
老师您好:<br> 我使用三层结构,用分页工具能正确显示第一页的数据,但为什么点其它页面后却显示空白了呢?
2008-02-23 15:45 aaaqqq
有vb範例嗎
回复:对不起,暂时没有,不过网上有很多C#=》VB的转换工具,你可以自己转换一下。谢谢!
2008-02-22 04:07 xiaoyi30382
如题~<br><br>代码部分:<br><br> protected void Page_Load(object sender, EventArgs e)<br> {<br> if (!Page.IsPostBack)<br> {<br> <br> SqlConnection conn = newsOperate.getConn();<br> conn.Open();<br> SqlCommand cmd = new SqlCommand("select count(nid) from serectNews",conn);<br> //设置要分页的数据的总数 <br> pager.RecordCount = (int)cmd.ExecuteScalar();<br> conn.Close();<br> bindData();<br> fillNews();<br> <br> }<br> <br> }<br><br> public void bindData()<br> {<br> SqlConnection conn = newsOperate.getConn();<br> conn.Open();<br> SqlCommand cmd = new SqlCommand("select nid,title,classid,addtime from serectNews order by nid desc", conn);<br> SqlDataAdapter adapter = new SqlDataAdapter(cmd);<br> DataSet ds = new DataSet();<br> //注意下面这句,只填充当前页要显示的数据,不能把所有数据全填充到DataSet中,否则无法实现分页 <br> adapter.Fill(ds, pager.PageSize * (pager.CurrentPageIndex - 1), pager.PageSize, "serectNews");<br> GridView1.DataSource = ds.Tables["serectNews"];<br> //GridView1.DataBind(); [color=#339966]//老大请看这,我只有注释掉他代码才可以执行,不然会显示一个错误:[/color][color=#FF0000]异常详细信息: System.Web.HttpException: 在选定的数据源上未找到名为“classname”的字段或属性。[/color]<br><br><br> }<br><br> protected void pager_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)<br> {<br> pager.CurrentPageIndex = e.NewPageIndex;<br> bindData();<br> }<br><br>前台代码:<br><br><webdiyer:AspNetPager ID="pager" runat="server" AlwaysShow="True" UrlPaging="True" ShowCustomInfoSection="Right" OnPageChanging="pager_PageChanging"><br> </webdiyer:AspNetPager><br><br>当点击了下一页的时候,状态栏显示的地址是可以改变的<br>xx.aspx?page=1 可以得到 xx.aspx?page=2<br>但是有个问题就是 GridView里的数据没有随着 分页而分页。<br><br>最后想说的就是,分不是很多,但是这个问题困绕我1天了,早上4点04分!<br>不知道我有没有说清楚
回复:您好,GridView数据没显示是因为没有调用DataBind()方法引起的,也就是注释掉的那行代码,不过您的代码中,我没看懂 [color=#339966]这是什么东西??这个不是正常的代码,注释掉的应该是这个而不是DataBind()方法。谢谢!