ورود

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



sara_t
سه شنبه 14 شهریور 1391, 12:13 عصر
سلام دوستان
من یه گالری عکس دارم که 400 تا عکس داره

و از دیتالیست برای نمایش اون استفاده کردم، از سایت کنترل CollectionPager دانلود کردم اما نمیدونم چطور ازش استفاده کنم .
من یه sqldatasource قرار دادم و دیتالیست رو بهش وصل کردم بصورت ویزاردی
در سایت خوندم که این روش بهینه نیست و هر بار داره هر 400 تا عکس رو فراخوانی میکنه
خیلی سرچ کردم اما به نتیجه نرسیدم ممنون میشم راهنمایی کنید.

meisam12
سه شنبه 14 شهریور 1391, 14:21 عصر
شاید این پروژه به شما کمک کنه.

alonemm
چهارشنبه 15 شهریور 1391, 10:49 صبح
باسلام:

به مقاله زیر مراجعه کنید:
آموزش پیاده سازی Custom Paging در GridView با تکنولوژی Ajax (http://barnamenevis.org/showthread.php?322558-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-Custom-Paging-%D8%AF%D8%B1-GridView-%D8%A8%D8%A7-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-Ajax)

دقت کنید این روش رو برای کنترل های داده پذیر دیگر هم میتونید پیاده سازی کنید/

sara_t
پنج شنبه 16 شهریور 1391, 10:14 صبح
آقای meysam12 این قسمت از کد چه کاری انجام میده؟

override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}

tsfrzdh
پنج شنبه 16 شهریور 1391, 10:19 صبح
من برای صفحه بندی datalist از این کد استفاده کردم.


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


If Page.IsPostBack = False Then
Menu1.Items(0).Selected = True
page_length.Text = "3"
start_page.Text = "0"
bindlist()
End If


End Sub

Public Sub First_record(ByVal s As Object, ByVal e As EventArgs)
start_page.Text = "0"
bindlist()
End Sub


Public Sub Previous_record(ByVal s As Object, ByVal e As EventArgs)
start_page.Text = CStr(CInt(start_page.Text) - CInt(page_length.Text))
If CInt(start_page.Text) < 0 Then
start_page.Text = "0"
End If
bindlist()
End Sub

Public Sub Next_record(ByVal s As Object, ByVal e As EventArgs)
If CInt(start_page.Text) + 1 < CInt(count_data.Text) Then
start_page.Text = CStr(CInt(start_page.Text) + CInt(page_length.Text))
End If
bindlist()
End Sub

Public Sub Last_record(ByVal s As Object, ByVal e As EventArgs)
Dim i As Integer

i = CInt(count_data.Text) Mod CInt(page_length.Text)
If i > 0 Then
start_page.Text = CStr(CInt(count_data.Text) - i)
Else
start_page.Text = CStr(CInt(count_data.Text) - CInt(page_length.Text))
End If
bindlist()
End Sub


Sub bindlist()

Dim con As New SqlConnection
con.ConnectionString = connection.ConStr
con.Open()

str = "select * from table "
sqlda = New SqlDataAdapter(Str, con)
ds = New DataSet()

If Not Page.IsPostBack() Then
sqlda.Fill(ds)
count_data.Text = CStr(ds.Tables(0).Rows.Count)
End If

sqlda.Fill(ds, CInt(start_page.Text), CInt(page_length.Text), “table")
datalist1.DataSource = ds
datalist1.DataMember = " table "
datalist1.DataBind()
con.Close()
navigate()


End Sub

Private Sub navigate()
lblshow.ForeColor = Drawing.Color.Black
' lblshow.BackColor = Drawing.Color.Yellow
lblshow.Text = "رکوردهای یافت شده:<b>" & count_data.Text
lblshow.Text += "</b>-صفحه:<b> "
lblshow.Text += CStr(CInt(CInt(start_page.Text) / CInt(page_length.Text) + 1))
lblshow.Text += "</b> از <b>"

If (CInt(count_data.Text) Mod CInt(page_length.Text)) > 0 Then
lblshow.Text += CStr(CInt(CInt(count_data.Text) / CInt(page_length.Text) + 1))
Else
lblshow.Text += CStr(CInt(count_data.Text) / CInt(page_length.Text))
End If
lblshow.Text += "</b>"
End Sub

sara_t
شنبه 18 شهریور 1391, 09:16 صبح
دوستان من یک سوال داشتم
collectionpager چگونه کار میکنه؟ در واقع یکبار داده ها از دیتابیس فراخوانی میشن یا نه هر بار که بر روی هر شماره صفحه کلیک میشه یکبار فراخوانی از دیتابیس صورت میگیره؟