PDA

View Full Version : صفحه بندی DataList



download69
جمعه 13 مرداد 1391, 01:10 صبح
سلام دوستان
من برای صفحه بندی دیتا لیست چند روزی هست که درگیرم که یک روشی رو پیدا کردم که تقریبا نیمی از کار رو انجام میده ولی نیمه دیگه رو نه !
مثلا من اگر 10 تا رکورد داشته باشم و بخوام در هر صفحه 2 رکورد باشه صفحه بندیش درسته ولی اطلاعات رو نشون نمیده ؟؟؟
من یک پروژه که فقط کار صفحه بندی دیتا لیست هستش رو ضمیمه کردم و اساتید محترم میخوام که منو در رفع این مشکل راهنمایی کنند با تشکر

90644

meisam12
جمعه 13 مرداد 1391, 05:54 صبح
سلام دوست عزیز
این کدها را امتحان کن.
و این تکه کد را برات آپلود کردم.

<%@ Page language="vb" Src="PagingDataList.aspx.vb" Inherits="PagingDataList" %> <html> <head> <title>DataList Paging</title> <style rel="StyleSheet"> .tablehead { font-family: Verdana, Arial, Helvetica, Sans-Serif; background-color:#006699; color:White; font-size: 10pt; } .tablebody { font-family: Verdana, Arial, Helvetica, Sans-Serif; background-color:Gainsboro; color:Black; font-size: 10pt; } .plaintable { font-family: Verdana, Arial, Helvetica, Sans-Serif; background-color:White; color:Black; font-size: 10pt; } </style> </head> <body> <form runat="server"> <h3><font face="verdana">DataList Paging</font></h3> <a name="BookMark"></a> <asp:DataList ID="dtlCustomers" Runat="server" Width="100%" BorderWidth="1" BorderColor="#006699"> <HeaderTemplate> <table width="100%" cellspacing="0" cellpadding="0"> <tr class="tablehead"> <th align="left" width="30%">Company Name</th> <th align="left" width="15%">Contact Name</th> <th align="left" width="25%">Contact Title</th> <th align="left" width="15%">Country</th> <th align="left" width="15%">Telephone</th> </tr> </HeaderTemplate> <ItemTemplate> <tr class="tablebody"> <td><%# DataBinder.Eval(Container.DataItem, "CompanyName") %></td> <td><%# DataBinder.Eval(Container.DataItem, "ContactName") %></td> <td><%# DataBinder.Eval(Container.DataItem, "ContactTitle") %></td> <td><%# DataBinder.Eval(Container.DataItem, "Country") %></td> <td><%# DataBinder.Eval(Container.DataItem, "Phone") %></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> <table width=100%&gt; &lt;tr> <td width=42% align=left> <asp:label ID="lblCounts" Runat="server" CssClass="plaintable" /> </td> <td width=4% valign="bottom"> <a href="pagingdatalist.aspx#BookMark" id="First" OnServerClick="ShowFirstPage" runat="server"> <img src="images/firstpage.gif" border="0"></a> </td> <td width=4% valign="bottom"> <a href="pagingdatalist.aspx#BookMark" id="Previous" OnServerClick="ShowPreviousPage" runat="server"> <img src="images/prevpage.gif" border="0"></a> </td> <td width=4% valign="bottom"> <a href="pagingdatalist.aspx#BookMark" id="Next" OnServerClick="ShowNextPage" runat="server"> <img src="images/nextpage.gif" border="0"></a> </td> <td width=4% valign="bottom"> <a href="pagingdatalist.aspx#BookMark" id="Last" OnServerClick="ShowLastPage" runat="server"> <img src="images/lastpage.gif" border="0"></a> </td> <td width="42%"> </td> </tr> </table> <asp:label ID="lblRecordCount" Visible="False" Runat="server" /> <asp:label ID="lblCurrentIndex" Visible="False" Text="0" Runat="server" /> <asp:label ID="lblPageSize" Visible="False" Text="10" Runat="server" /> </form> </body> </html>


dataAdapter.Fill (dataSet, Cint(lblCurrentIndex.Text), CInt(lblPageSize.Text), "Customers")


Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Imports Microsoft.VisualBasic Public Class PagingDataList : Inherits System.Web.UI.Page Protected lblCurrentIndex As System.Web.UI.WebControls.Label Protected lblRecordCount As System.Web.UI.WebControls.Label Protected dtlCustomers As System.Web.UI.WebControls.DataList Protected lblPageSize As System.Web.UI.WebControls.Label Protected lblCounts As System.Web.UI.WebControls.Label Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) If Not Page.IsPostBack() Then BindTheData() End If End Sub Private Sub BindTheData() Dim objConn As New SqlConnection(ConfigurationSettings.AppSettings("NorthwindConnection")) Dim strSql As String = "SELECT CompanyName, ContactName, ContactTitle, Country, Phone FROM Customers" Dim dataAdapter As New SqlDataAdapter(strSql, objConn) Dim dataSet As New DataSet() If Not Page.IsPostBack() Then dataAdapter.Fill(dataSet) lblRecordCount.Text = CStr(dataSet.Tables(0).Rows.Count) dataSet = Nothing dataSet = New DataSet() End If dataAdapter.Fill (dataSet, Cint(lblCurrentIndex.Text), CInt(lblPageSize.Text), "Customers") dtlCustomers.DataSource = dataSet.Tables("Customers").DefaultView dtlCustomers.DataBind() objConn.Close() ShowCounts() End Sub


Public Sub ShowFirstPage(ByVal s As System.Object, ByVal e As System.EventArgs) lblCurrentIndex.Text = "0" BindTheData() End Sub Public Sub ShowPreviousPage(ByVal s As System.Object, ByVal e As System.EventArgs) lblCurrentIndex.Text = Cstr(Cint(lblCurrentIndex.Text) - CInt(lblPageSize.Text)) If CInt(lblCurrentIndex.Text) < 0 Then lblCurrentIndex.Text = "0" End If BindTheData() End Sub Public Sub ShowNextPage(ByVal s As System.Object, ByVal e As System.EventArgs) If CInt(CInt(lblCurrentIndex.Text) + CInt(lblPageSize.Text)) < CInt(lblRecordCount.Text) Then lblCurrentIndex.Text = CStr(CInt(lblCurrentIndex.Text) + CInt(lblPageSize.Text)) End If BindTheData() End Sub Public Sub ShowLastPage(ByVal s As System.Object, ByVal e As System.EventArgs) Dim intMod as Integer intMod = CInt(lblRecordCount.Text) Mod CInt(lblPageSize.Text) If intMod > 0 Then lblCurrentIndex.Text = Cstr(CInt(lblRecordCount.Text) - intMod) Else lblCurrentIndex.Text = Cstr(CInt(lblRecordCount.Text) - CInt(lblPageSize.Text)) End If BindTheData() End Sub Private Sub ShowCounts() lblCounts.Text = "|Total Rows: <b>" & lblRecordCount.Text lblCounts.Text += "</b> | Page:<b> " lblCounts.Text += CStr(CInt(CInt(lblCurrentIndex.Text) / CInt(lblPageSize.Text)+1)) lblCounts.Text += "</b> of <b>" If (CInt(lblRecordCount.Text) Mod CInt(lblPageSize.Text)) > 0 Then lblCounts.Text += CStr(Fix(CInt(lblRecordCount.Text) / CInt(lblPageSize.Text)+1)) Else lblCounts.Text += CStr(Fix(lblRecordCount.Text) / CInt(lblPageSize.Text)) End If lblCounts.Text += "</b> |" End Sub End Class

khz-web1
جمعه 13 مرداد 1391, 17:05 عصر
سلام به لینک زیر مراجعه کن
http://www.how2learnasp.net/article.aspx?code=652b10cf-8fc2-44c3-bacd-f82ac182acd1
موفق باشی

download69
جمعه 13 مرداد 1391, 18:37 عصر
آقا میثم دستتون دردنکنه جواب داد
ولی من یک مشکل دیگه پیدا کردم و اونم اینه که وقتی یک رکود جدید اضاف میشه من می خوام که بالای رکورد های دیگه قرار بگیره و من قبل از روش صفحه بندی چون دیتا لیست به دیتا سورس وصل بود تو قسمت سلکتش از دستور order استفاده کردم که این کار رو واسم میکرد ولی برای روش من بلد نیسم که باید چیکار کنم؟؟؟؟
لطفا میگید که باید پیکار کنم

mikhak_sefid
پنج شنبه 09 شهریور 1391, 00:06 صبح
سلام
من همین مشکل داشتم بر اساس تاریخ مرتب کردم اطلاعات جدید در بالای رکوردها نشون میده
موفق باشید