PDA

View Full Version : سوال: صفحه بندی Repeater



mohammad973
پنج شنبه 28 شهریور 1392, 05:27 صبح
سلام عزیزان ؛
چطور میشه داده هایی که به Repeater میفرستیم رو صفحه بندی کنیم ؟ به این صورت که اگر 42 تا رکورد رو قراره نشون بده ، صفحاتمون رو 5 تایی در نظر بگیریم ، خودش از 1 تا 9 رو صفحه گذاری کنه و کاربر با کلیک بر هر یک از این اعداد ، 5 رکورد مربوط به صفحۀ متناظر رو ببینه ؟

fakhravari
پنج شنبه 28 شهریور 1392, 12:17 عصر
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT [TopicID], [Subject] FROM [B_Topics]">
</asp:SqlDataSource>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div style="overflow: hidden;">
<div style="float: left; margin: 1px; width: 70px; background: #EAEAFF; text-align: center;">
<%# Eval("TopicID")%>
</div>
<div style="float: left; margin: 1px; width: 90%; background: #EAEAFF; text-align: center;">
<%# Eval("Subject")%>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<div style="overflow: hidden;">
<asp:Repeater ID="rptPages" runat="server" OnItemCommand="rptPages_ItemCommand1">
<ItemTemplate>
<asp:LinkButton ID="btnPage" Style="padding: 1px 3px; margin: 1px; background: #ccc;
border: solid 1px #666; font: 8pt tahoma;" CommandName="Page" CommandArgument="<%# Container.DataItem %>"
runat="server"><%# Container.DataItem %>
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

using System;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Linq;

public partial class Default3 : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlDataSource1.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=LogBookHome;Integrated Security=True";
LoadData();
}
}



private void LoadData()
{
string constr = @"Data Source=.\SQLEXPRESS;Initial Catalog=LogBookHome;Integrated Security=True";
SqlDataAdapter da = new SqlDataAdapter("select Subject,TopicID from B_Topics", constr);
DataTable dt = new DataTable();
da.Fill(dt);
PagedDataSource pgitems = new PagedDataSource();
System.Data.DataView dv = new System.Data.DataView(dt);
pgitems.DataSource = dv;
pgitems.AllowPaging = true;
pgitems.PageSize = 10;
pgitems.CurrentPageIndex = PageNumber;
if (pgitems.PageCount > 1)
{
rptPages.Visible = true;
System.Collections.ArrayList pages = new System.Collections.ArrayList();
for (int i = 0; i < pgitems.PageCount; i++)
pages.Add((i + 1).ToString());
rptPages.DataSource = pages;
rptPages.DataBind();
}
else
rptPages.Visible = false;
Repeater1.DataSource = pgitems;
Repeater1.DataBind();
}


private int PageNumber
{
get
{
if (ViewState["PageNumber"] != null)
return Convert.ToInt32(ViewState["PageNumber"]);
else
return 0;
}
set
{
ViewState["PageNumber"] = value;
}
}


protected void rptPages_ItemCommand1(object source, RepeaterCommandEventArgs e)
{
PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
LoadData();
}




}

fakhravari
پنج شنبه 28 شهریور 1392, 12:25 عصر
<%@ Page Language="C#‎‎‎" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT [TopicID], [Subject] FROM [B_Topics]">
</asp:SqlDataSource>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div style="overflow: hidden;">
<div style="float: left; margin: 1px; width: 70px; background: #EAEAFF; text-align: center;">
<%# Eval("TopicID")%>
</div>
<div style="float: left; margin: 1px; width: 90%; background: #EAEAFF; text-align: center;">
<%# Eval("Subject")%>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<div style="overflow: hidden;">
<asp:Repeater ID="rptPages" runat="server" OnItemCommand="rptPages_ItemCommand1">
<ItemTemplate>
<asp:LinkButton ID="btnPage" Style="padding: 1px 3px; margin: 1px; background: #ccc;
border: solid 1px #666; font: 8pt tahoma;" CommandName="Page" CommandArgument="<%# Container.DataItem %>"
runat="server"><%# Container.DataItem %>
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>

using System;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Linq;

public partial class Default3 : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlDataSource1.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=LogBookHome;Integrated Security=True";
LoadData();
}
}



private void LoadData()
{
string constr = @"Data Source=.\SQLEXPRESS;Initial Catalog=LogBookHome;Integrated Security=True";
SqlDataAdapter da = new SqlDataAdapter("select Subject,TopicID from B_Topics", constr);
DataTable dt = new DataTable();
da.Fill(dt);
PagedDataSource pgitems = new PagedDataSource();
System.Data.DataView dv = new System.Data.DataView(dt);
pgitems.DataSource = dv;
pgitems.AllowPaging = true;
pgitems.PageSize = 10;
pgitems.CurrentPageIndex = PageNumber;
if (pgitems.PageCount > 1)
{
rptPages.Visible = true;
System.Collections.ArrayList pages = new System.Collections.ArrayList();
for (int i = 0; i < pgitems.PageCount; i++)
pages.Add((i + 1).ToString());
rptPages.DataSource = pages;
rptPages.DataBind();
}
else
rptPages.Visible = false;
Repeater1.DataSource = pgitems;
Repeater1.DataBind();
}


private int PageNumber
{
get
{
if (ViewState["PageNumber"] != null)
return Convert.ToInt32(ViewState["PageNumber"]);
else
return 0;
}
set
{
ViewState["PageNumber"] = value;
}
}


protected void rptPages_ItemCommand1(object source, RepeaterCommandEventArgs e)
{
PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
LoadData();
}




}