PDA

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



asdf2010
پنج شنبه 05 بهمن 1391, 13:11 عصر
با سلام و خسته نباشید
من میخوام که ریپیتر رو صفحه بندی کنم ، چطوری باید اینکار رو انجام بدم
لطفا نگید که از دیتا لسیت استفاده کن
ممنون از راهنمایتون

asdf2010
پنج شنبه 05 بهمن 1391, 20:56 عصر
جون هر کی که دوست دارین بگین لازمش دارم

malloc
جمعه 06 بهمن 1391, 00:25 صبح
من با REPEATERکار نکردم . اما یه روشی بود که آقای فخراوری برای صفحه بندی دیتالیست گفتن که فکر کنم همون روش برای REPEATER هم جوابگو باشه . تست کردید ؟؟؟

fakhravari
جمعه 06 بهمن 1391, 02:53 صبح
<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" ConnectionString="<%$ ConnectionStrings:BookHomeConnectionString1 %>"
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>


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}



private void LoadData()
{
string constr = @"Data Source=.\SQLEXPRESS;Initial Catalog=BookHome;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();
}