PDA

View Full Version : سوال: این ریپتر رو چه جوری بهش Paging بدم.



miladmcasp
پنج شنبه 05 فروردین 1389, 00:16 صبح
این ریپتر رو چه جوری بهش Paging بدم.
صفحه 1,2,3,4,5,6,7,8

من در سطح شما نیستم. لطف کنید گام به گام
تشکر



<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<table width="400px">
<tr>
<td class="tdbg">
<a style="color:red;"> :</a>
<asp:Label runat="server" Font-Names="Tahoma" Font-Size="8pt" Font-Bold="true" ID="Lable2" Text='<%# Eval ("Subject")%>' />

</td>
</tr>
<tr>
<td>
<asp:Label runat="server" Font-Names="Tahoma" Font-Size="8pt" Font-Bold="false" ID="Label2" Text='<%# Eval("News") %>' />
</td>
</tr>
<tr>
<td align="left" >

<asp:Label runat="server" Font-Names="Tahoma" Font-Size="8pt" Font-Bold="false" ForeColor="green" ID="Label1" Text='<%# Eval("Date") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>"

SelectCommand="SELECT Top 10 [ID], [Date], [News], [Subject] FROM [News] ORDER BY [ID] DESC">

General-Xenon
پنج شنبه 05 فروردین 1389, 04:26 صبح
با سلام....!
من اگر جای شما بودم از گریدویو استفاده میکردم....
یعنی از خاصیت Custom گریدویو استفاده میکردم...خیلی راحته...:چشمک:
.
.
.
.باز اگر نتونستی من برات درست می کنم...

iman_ad
پنج شنبه 05 فروردین 1389, 10:03 صبح
عرضم به حضور دوست عزیزم شما باید دیتا سورس مرتب تغییر بدی و متد databind کال کنی که باید یک پیجز خودت بنویسی
می تونی از کنترل DataPager که در .net3.5 هست به همراه listview استفاده کنی

حامد مصافی
پنج شنبه 05 فروردین 1389, 11:03 صبح
راه حل اول : از PagedDataSource استفاده كنيد.
راه حل دوم : در متد Fill اداپتر شماره ركورد را درج كنيد( كه البته نيازمند مديريت است)

miladmcasp
پنج شنبه 05 فروردین 1389, 16:46 عصر
2 تا تشکر :
ممنون که جواب دادین
ممنون که به نکته ایی که گفتم دقت کردین "من در سطح شما نیستم. لطف کنید گام به گام
"

miladmcasp
پنج شنبه 05 فروردین 1389, 16:52 عصر
با سلام....!
من اگر جای شما بودم از گریدویو استفاده میکردم....
یعنی از خاصیت Custom گریدویو استفاده میکردم...خیلی راحته...:چشمک:
.
.
.
.باز اگر نتونستی من برات درست می کنم...

من به این ریپیترها علاقه خاصی دارم اما متاسفانه paging بلد نیستم واسش بذارم

karaji333
پنج شنبه 05 فروردین 1389, 20:29 عصر
<div>
<asp:LabelID="lblCurrpage"runat="server"></asp:Label>
<asp:RepeaterID="Repeater1"runat="server">
<HeaderTemplate><tablewidth="100%"><tr><th>time</th><th>date</th></tr></HeaderTemplate>
<ItemTemplate>
<tr><td><%#DataBinder.Eval(Container.DataItem, "time")%></td>
<td><%#DataBinder.Eval(Container.DataItem, "date")%></td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
</div>




protectedvoid Page_Load(object sender, EventArgs e)
{
DisplayData();
}
publicvoid DisplayData()
{
SqlConnection myConnection = newSqlConnection(ConfigurationManager.AppSettings["con"].ToString());
SqlCommand cmd = newSqlCommand("SELECT * FROM [detail]", myConnection);
cmd.Connection.Open();
SqlDataAdapter myDA = newSqlDataAdapter(cmd);
DataSet ds = newDataSet();
myDA.Fill(ds, "Table1");
PagedDataSource pageds = newPagedDataSource();
pageds.DataSource = ds.Tables["Table1"].DefaultView;
pageds.AllowPaging = true;
pageds.PageSize = 20;
int curpage = 0;
if (Request.QueryString["page"] != null)
{
curpage = Convert.ToInt32(Request.QueryString["page"]);
}
else
{
curpage = 1;
}
pageds.CurrentPageIndex = curpage - 1;
if (curpage == 1 && pageds.DataSourceCount > pageds.PageSize)
lblCurrpage.Text = "Pages: 1";
elseif (pageds.DataSourceCount == 0)
lblCurrpage.Text = "No data to display.";
elseif (curpage > 1 && pageds.DataSourceCount > pageds.PageSize)
lblCurrpage.Text = "Pages: <a href='Default.aspx?page=1'>1</a>";
for (int i = 2; i <= pageds.PageCount; i++)
{
if (i == curpage)
lblCurrpage.Text = lblCurrpage.Text + ", " + i.ToString();
else
lblCurrpage.Text = lblCurrpage.Text + ", <a href='Default.aspx?page=" + i.ToString() + "'>" + i.ToString() + "</a>";
}
Repeater1.DataSource = pageds;
Repeater1.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();
}

توی pageds.PageSize = 20 تعداد آیتم ها رو مشخص کن

miladmcasp
جمعه 06 فروردین 1389, 01:44 صبح
ممنون که جواب دادین
اما من کدهای شما رو با سلیقه خودم تغییراتی دادم
خیلی قشنگ تو Local Host کار می کنه
اما وقتی آپلود می کنم error می ده



protectedvoid Page_Load(object sender, EventArgs e)
{
DisplayData();
}
publicvoid DisplayData()
{
SqlConnection Con = newSqlConnection(ConfigurationManager.ConnectionSt rings["DatabaseConnectionString"].ToString());
SqlCommand cmd = newSqlCommand("SELECT * FROM [News] ORDER BY [ID] DESC", Con);
cmd.Connection.Open();
SqlDataAdapter myDA = newSqlDataAdapter(cmd);
DataSet ds = newDataSet();
myDA.Fill(ds, "Table1");
PagedDataSource pageds = newPagedDataSource();
pageds.DataSource = ds.Tables["Table1"].DefaultView;
pageds.AllowPaging = true;
pageds.PageSize = 8;
int curpage = 0;
if (Request.QueryString["page"] != null)
{
curpage = Convert.ToInt32(Request.QueryString["page"]);
}
else
{
curpage = 1;
}
pageds.CurrentPageIndex = curpage - 1;
if (curpage == 1 && pageds.DataSourceCount > pageds.PageSize)
lblCurrpage.Text = "Pages: 1";
elseif (pageds.DataSourceCount == 0)
lblCurrpage.Text = "No data to display.";
elseif (curpage > 1 && pageds.DataSourceCount > pageds.PageSize)
lblCurrpage.Text = "Pages: <a href='Default.aspx?page=1'>1</a>";
for (int i = 2; i <= pageds.PageCount; i++)
{
if (i == curpage)
lblCurrpage.Text = lblCurrpage.Text + ", " + i.ToString();
else
lblCurrpage.Text = lblCurrpage.Text + ", <a href='News.aspx?page=" + i.ToString() + "'>" + i.ToString() + "</a>";
}
Repeater1.DataSource = pageds;
Repeater1.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();

}
}




<asp:RepeaterID="Repeater1"runat="server">
<ItemTemplate>
<tablewidth="400px"id="Table1">
<tr>
<tdclass="tdbg"style="font-size:8pt; font-weight:bold;">
<astyle="color:red;"> :</a>
<%#DataBinder.Eval(Container.DataItem, "Subject")%>
</td>
</tr>
<tr>
<tdstyle="font-size:9pt;">
<%#DataBinder.Eval(Container.DataItem, "News")%>
</td>
</tr>
<tr>
<tdalign="left"style="font-size:8pt; color:Green;">
<%#DataBinder.Eval(Container.DataItem, "Date")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
<tablewidth="400px"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdalign="center">
<asp:LabelID="lblCurrpage"runat="server"
style="color: #FF6600; font-weight: 700;"></asp:Label>
</td>
</tr>
</table>


این error می یاد. فکر می کنم نمی تونه به database وصل شه

The connection name 'dbConnectionString' was not found in the applications configuration or the connection string is empty.

http://aspspider.info/miladmc/News.aspx


کانکشن تو webconfig هاست aspspider هم این طوری هست:


<connectionStrings>
<add name="DatabaseConnectionString" connectionString="Data Source=.\SQLExpress;Persist Security Info=True;Integrated Security=SSPI;Initial Catalog=miladmc_Database"/>
</connectionStrings>

miladmcasp
جمعه 06 فروردین 1389, 01:46 صبح
البته من از حالتی که شما فرمودید هم استفاده کردم اما دیگه تو local هم اجرا نشد



SqlConnection myConnection = newSqlConnection(ConfigurationManager.AppSettings["DatabaseConnectionString"].ToString());



تو webConfig هم <appSettings> تعریف نشده ها

karaji333
جمعه 06 فروردین 1389, 02:04 صبح
تو web.config


<appSettings>
<addkey="con"value="Password=your-pass;Persist Security Info=True;User ID=your-user;Initial Catalog=db-name;Data Source=data-source"></add>
</appSettings>


طرز استفاده

SqlConnection myConnection = newSqlConnection(ConfigurationManager.AppSettings["con"].ToString());


کانکشن استرینگی که شما بدون یوزر و پس نوشتید شاید رو لوکال جواب بده ولی روی هاست مطمئنا جواب نمیده... تو کنترل پنل هاستتون باید یه یوزر با یه پسورد واسه اون دیتابیس تعریف کنید و با اون یوزر به دیتابیس وصل بشید
ضمن اینکه برنامه شما روی هاست داره تو بخش کدهای html رو خط قرمز زیر ارور میده


Line 39: </asp:Repeater>
Line 40: </div>
Line 41: <asp:SqlDataSource ID="SqlDataSource1" runat="server"
Line 42: ConnectionString="<%$ ConnectionStrings:dbConnectionString %>"
Line 43: SelectCommand="SELECT [Id], [Title], [News], [By] FROM [news]">


اسم کانکشن استرینکت رو اینجا dbConnectionString دادی ولی تو we.config اسم کانکشن استرینگت DatabaseConnectionString هستش...بایدم بگه کانکشن استرینگی با نام dbConnectionString رو نمیتونه پیدا کنه که اگه پیدا میکرد باعث تعجب بود...

miladmcasp
جمعه 06 فروردین 1389, 02:37 صبح
اسم کانکشن استرینکت رو اینجا dbConnectionString دادی ولی تو we.config اسم کانکشن استرینگت DatabaseConnectionString هستش...بایدم بگه کانکشن استرینگی با نام dbConnectionString رو نمیتونه پیدا کنه که اگه پیدا میکرد باعث تعجب بود...[/quote]

نه من این کارو نکردم


<%@PageLanguage="C#‎‎"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="News.aspx.cs"Inherits="News"Title=".::News::." %>
<asp:ContentID="Content1"ContentPlaceHolderID="head"Runat="Server">
<styletype="text/css">
.style8
{
width: 100%;
height: 50px;
}
.style10
{
height: 302px;
width: 185px;
}
.style11
{
height: 302px;
color:Black;
font-family:Tahoma;
font-size:9pt;

}
.style12
{
width: 553px;
}
</style>
</asp:Content>
<asp:ContentID="Content2"ContentPlaceHolderID="ContentPlaceHolder1"Runat="Server">
<divstyle="height: 100%">
<tableclass="style8"border="0"cellpadding="1"cellspacing="1">
<tr>
<tdclass="style12"align="left"valign="top">
<embedwidth=600height=70fullscreen=yessrc="images/NW60070.swf">
</td>
<tdclass="text"dir="rtl">
&nbsp;</td>
</tr>
</table>
<tableclass="style8"border="0"cellpadding="1"cellspacing="1">
<tr>
<tdclass="style10"align="left"valign="middle">
<imgalt=""src="images/news.jpg"style="width: 300px; height: 226px"/></td>
<tdclass="style11"align="right"dir="rtl"
style="font-family: Tahoma; font-size: small"valign="top">
<br/>

<asp:RepeaterID="Repeater1"runat="server"
DataSourceID="">
<ItemTemplate>
<tablewidth="400px"id="Table1">
<tr>
<tdclass="tdbg"style="font-size:8pt; font-weight:bold;">
<astyle="color:red;"> خبر:</a>
<%#DataBinder.Eval(Container.DataItem, "Subject")%>
</td>
</tr>
<tr>
<tdstyle="font-size:9pt;">
<%#DataBinder.Eval(Container.DataItem, "News")%>
</td>
</tr>
<tr>
<tdalign="left"style="font-size:8pt; color:Green;">
<%#DataBinder.Eval(Container.DataItem, "Date")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
<tablewidth="400px"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdalign="center">
<asp:LabelID="lblCurrpage"runat="server"
style="color: #FF6600; font-weight: 700;"></asp:Label>
</td>
</tr>
</table>
<!--
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>"
SelectCommand="SELECT Top 10 [ID], [Date], [News], [Subject] FROM [News] ORDER BY [ID] DESC">
</asp:SqlDataSource>
!-->
</td>
</tr>
</table>
</div>
</asp:Content>


من فکر می کنم مشکل از جای دیگه هست
من خطای HTML دارم. اونم تو لاینی که تو کدهای من نیست

miladmcasp
جمعه 06 فروردین 1389, 03:31 صبح
آقا من شرمندتونم:ناراحت:
این پست اخر رو زدم که یه جورایی تنبیه شم و بهم بخندید.:قهقهه:
دوست عزیز karajji333 واقعا ازت ممنونم واسه لطفی که کردین و توی این پست قشنگ توضیح دادین:قلب::قلب::قلب::قلب:
آقا میدونید مشکل کجا بود؟ من هی داشتم NEWS.ASPX یه پروژه دیگمو آپلود می کردم نه پروژه ایی که داریم روش کار می کنیم:ناراحت::خجالت::ناراحت:: جالت:
چقدر زشت شد:افسرده:
بازم شرمنده:افسرده:
ببخشید:افسرده: