ASP.NET 实现repeater 分页功能,c#

<asp:RepeaterID="Repeater1"runat="server"><ItemTemplate>.....<asp:LabelID="lbl1"runat... <asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
.....<asp:Label ID="lbl1" runat="server" Text='<%# Eval("TimuName") %>'></asp:Label><br />
<asp:RadioButton ID="rbtnA" runat="server" GroupName="0" Text='<%#Eval("AnswerA") %>' /><br />
<asp:RadioButton ID="rbtnB" runat="server" GroupName="0" Text='<%#Eval("AnswerB") %>' /><br />
<asp:RadioButton ID="rbtnC" runat="server" GroupName="0" Text='<%#Eval("AnswerC") %>' /><br />
<asp:RadioButton ID="rbtnD" runat="server" GroupName="0" Text='<%#Eval("AnswerD") %>' /><br />
</ItemTemplate>
</asp:Repeater>

我绑定了一个表,怎么让输出的数据进行分页,比如十条一页
展开
 我来答
qq544720933
2010-04-23 · 超过25用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:43.7万
展开全部
//在数据访问的时候就分页
数据访问的分页排序方法

int pageId:当前页,
int pageSize每页数据数,
string addWhere查询条件,
string taxisName要排序的列名,
string descOrAsc:2种排序参数(desc/asc),
string tableName:数据表名

public static DataSet getDataSet(int pageId,int pageSize, string addWhere, string taxisName, string descOrAsc,string tableName)
{
string sql= "select * from (select ROW_NUMBER() OVER(ORDER BY " + taxisName + " " + descOrAsc + ") as pageId,* from "+tableName+") as tablename ";
sql += " where pageId>=" + (pageSize * (pageId - 1) + 1).ToString() + " and pageId<=" + (pageSize * pageId).ToString() + " " + addWhere;
return DbHelperSQL.Query(sql);
}//该方法sql语句有sql注入的漏洞,在用户输入条件上判断用户输入是否合法,防御sql注入 到baidu还是有很多资料的
参数都有了,应该会做了吧
要任何的分页和每页数据数,改变一下参数的值就可以了
fqmail
2010-04-21 · TA获得超过524个赞
知道小有建树答主
回答量:506
采纳率:0%
帮助的人:184万
展开全部
绑定的数据源实现分页查询就可以了
查询出新的页的数据,重新绑定

就分页而眼,AspNetPager是个相当不错的免费第三方控件
用了两年多了,也就是换换新版本而已
这是下载地址:http://www.webdiyer.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laicaly
高粉答主

2010-04-21 · 醉心答题,欢迎关注
知道小有建树答主
回答量:3001
采纳率:74%
帮助的人:328万
展开全部
分页一般不在这个控件上做,如果你要在控件上做分页的话可以使用 gridview,本身自带的分页属性。Repeater 实现分页可以这样做:
1、程序中返回数据源已经是分页好的数据
2、这些数据要么在程序上写,要么在数据库中写分页存储过程,(当然后面的方法是最理想的)
好好学习,希望你成功!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aspx168
2010-04-21 · TA获得超过144个赞
知道答主
回答量:591
采纳率:0%
帮助的人:170万
展开全部
你去下载一个 AspNetPager 然后用这种方法分页 这种属于后台分页

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<ul class="newul">
<asp:Repeater ID="newsRepeater" runat="server">
<ItemTemplate>
<li><div class="lileft"><a href='newshow.aspx?newid=<%# Eval("id") %>'><%# Eval("newstitle")%></a></div><span class="liright"> <%# DateTime.Parse(Eval("newstime").ToString()).ToString("yyyy-MM-dd") %></span></li>
</ItemTemplate>
</asp:Repeater>
</ul>
<div style=" text-align:center">
<br />
<webdiyer:AspNetPager ID="AspNetPagerNewsAll" runat="server"
OnPageChanged="AspNetPagerNewsAll_PageChanged" FirstPageText="首页"
LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页">
</webdiyer:AspNetPager>
</div>

cs文件
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AspNetPagerNewsAll_PageChanged(sender, e);
}
}
protected void AspNetPagerNewsAll_PageChanged(object sender, EventArgs e)
{
string strwhere = "1=1 ";
AspNetPagerNewsAll.PageSize = pagesize;
string sqlcount = "select Count(id) from vipic where " + strwhere;
AspNetPagerNewsAll.RecordCount = Convert.ToInt32(DbHelperSQL.GetSingle(sqlcount));
this.productlistRepeater.DataSource = DbHelperSQL.ExecutePager("vipic", "id", "*", AspNetPagerNewsAll.CurrentPageIndex, AspNetPagerNewsAll.PageSize, "picnum", strwhere, null);
this.productlistRepeater.DataBind();
}
int pagesize = 9;

public int Pagesize
{
get { return pagesize; }
set { pagesize = value; }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
第二代幻想猫
2010-04-21
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
在源代码里写:<asp:HyperLink ID="HyperLink1" runat="server" Font-Size="13px">首页</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server" Font-Size="13px">上一页</asp:HyperLink>
<asp:HyperLink ID="HyperLink3" runat="server" Font-Size="13px">下一页</asp:HyperLink>
<asp:HyperLink ID="HyperLink4" runat="server" Font-Size="13px">尾页</asp:HyperLink>
 
<asp:Label ID="Label1" runat="server" Font-Size="13px"></asp:Label>
<asp:DropDownList ID="ddlYe" runat="server" AutoPostBack="True" Font-Size="13px"
Height="17px" OnSelectedIndexChanged="ddlYe_SelectedIndexChanged" Width="70px">

在后面代码写:
string cSql="SELECT * FROM ....";
DataAccess.LoadRepeater(cSql, repeater1);

int CurrPage = 0;
int TotalPage = 0;

DataSet dsProblem = DataAccess.DataSet(cSql);

PagedDataSource oPage = new PagedDataSource();
oPage.DataSource = dsProblem.Tables[0].DefaultView;
oPage.AllowPaging = true;
oPage.PageSize = 10;

if (Request.QueryString["Page"] != null)
CurrPage = Convert.ToInt16(Request.QueryString["Page"]);
else
CurrPage = 1;

TotalPage = oPage.PageCount;

oPage.CurrentPageIndex = CurrPage - 1;
repeater1.DataSource = oPage;
repeater1.DataBind();

ddlYe.Items.Clear();

if (!Page.IsPostBack)
{

for (int m = 0; m <= oPage.PageCount - 1; m++)
{
ListItem MyPage = new ListItem("第" + (m + 1).ToString() + "页", m.ToString());
ddlYe.Items.Add(MyPage);
}

ddlYe.SelectedIndex = (int.Parse(oPage.CurrentPageIndex.ToString()));

}

Label1.Text = "第" + CurrPage.ToString() + "页/共" + Convert.ToString(TotalPage) + "页";
if (!oPage.IsFirstPage)
HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
if (!oPage.IsFirstPage)
HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrPage - 1);
if (!oPage.IsLastPage)
HyperLink3.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(CurrPage + 1);
if (!oPage.IsLastPage)
HyperLink4.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(TotalPage);

protected void ddlYe_SelectedIndexChanged(object sender, EventArgs e)
{
int CurrPage = 0;

CurrPage = Convert.ToInt16(ddlYe.SelectedItem.Value);

Response.Redirect(Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrPage + 1));
}
还要激发ddlYe_SelectedIndexChanged这个事件

这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式