asp.net 三层机构repeater 怎么分页动态的

qq_41009232 2018-08-27 09:19:52
前台代码
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="Content3">
<hr style="border :1px solid grey"/>
<h3>产品介绍</h3>
<div>
产品搜索:<asp:TextBox ID="txtname" placeholder="请输入搜索信息" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="搜索" OnClick="Button1_Click" />
</div>
<p style="text-align:center">
<a href="product.aspx?gname=铝合金水平尺">铝合金水平尺</a>|
<a href='product.aspx?gname=鱼雷式水平尺' >鱼雷式水平尺</a>|
<a href='product.aspx?gname=测量工具'>测量工具</a>|
<a href='product.aspx?gname=其他' >其他</a>
</p>
<asp:Repeater ID="rpproduct" runat="server">
<ItemTemplate>
<dl>
<dt><a href='Productdetail.aspx?shopname=<%#Eval("ShopName") %>'>
<img src="Images/<%#Eval("shoppicture") %>" /></a></dt>
<dd class="dq_introduce"><%#Eval("ShopName") %>
</dd>
<dd class="dq_price">¥<%#Eval("ShopPrice") %></dd>
</dl>
</ItemTemplate>
</asp:Repeater>


</div>
<div id="footpages">
<a href="product.aspx?pages=1"onclick="">上一页</a>
<a href="product.aspx?pages=2"onclick="">下一页</a>
</div>
</asp:Content>
后台代码
void loadpage()
{
string typename = Request.QueryString["gname"];
string page5 = Request.QueryString["pages"];
int pages;
int rows =8;
if (page5 == null)
{
pages =1;
if (typename == null)
typename = "铝合金水平尺";
//Total t = shopBLL.selectShopTotalBLL(typename);
//int totala = t.Totals;
this.rpproduct.DataSource = shopBLL.selectShopPageBLL(rows, pages, typename);
this.rpproduct.DataBind();
}
else
{
pages = int.Parse(page5);
if (typename == null)
typename = "铝合金水平尺";
//shopBLL.selectShopTotalBLL(typename);
this.rpproduct.DataSource = shopBLL.selectShopPageBLL(rows, pages, typename);
this.rpproduct.DataBind();
}我现在是写死了怎么写动态的
...全文
568 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
EdsionWang 2018-11-26
  • 打赏
  • 举报
回复
推荐你使用这个分页控件吧 http://www.webdiyer.com/aspnetpager/
fighting_1982 2018-11-23
  • 打赏
  • 举报
回复
如果你连服务器控件的分页都还不会,那我建议你可以直接放弃服务器控件,因为如果学easyui或者简单点的前端框架成本不比学服务器控件高,而且性能和体验以及功能都会比服务器控件好很多。而且也支持前后端分离的开发模式。
  • 打赏
  • 举报
回复
给你一个简单的方式吧,服务端分页 在你前端页面分页的那个地方拖入一个PlaceHolder控件PH rpproduct.DataBind();后面加入代码

for (int i = 0; i < PageCount; i++)
            { 
             
            HyperLink h=new HyperLink();
            Literal l = new Literal();
            int n = i + 1;
            h.Text = n.ToString();
            h.ID=n.ToString();
            h.NavigateUrl = "list.aspx?pageindex=" + i.ToString();
            l.Text =" ";
             
            PH.Controls.Add(h);
            PH.Controls.Add(l);            
            }
这是最简单的分页,把所有页码都列出来的,这是给你一个思路,其他的逻辑自己往进加吧
ccshigenvwa 2018-09-08
  • 打赏
  • 举报
回复
从提问可理解为还是多页面刷新显示数据方式,那么只需添加分页组建或自己写分页按钮来进行请求,每次请求带上当前页索引,假设不做动态每页现实的大小这部分可以设置一个常量,其他的就是每次只获取部分数据渲染,此部分可建议采用一个啊.asp.net时代的组件好像是websitepage
Logerlink 2018-08-28
  • 打赏
  • 举报
回复
通过pageIndex 和 pageSize 获取分页数据

public DataSet GetDataByPage(int pageIndex)
{
pageIndex = 2;
int dataMin = (pageIndex - 1) * PAGE_SIZE+1;
int dataMax = pageIndex * PAGE_SIZE;
StringBuilder sqlSb = new StringBuilder();
sqlSb.Append("SELECT * FROM ( ");
sqlSb.Append("SELECT *,ROW_NUMBER() over(order by id) rownumber ");
sqlSb.Append("FROM tableName ) bb ");
sqlSb.Append($"WHERE bb.rownumber between {dataMin} and {dataMax}");
//return sqlHelper.query(sqlSb.ToString()) 执行sql 返回数据 再将返回的数据重新绑定Repeater

}

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧