الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقسيم الصفحات

مغلق
بدأه محمد سعد العتيبي في 26 ديسمبر 2004 · 6 رد · 6,830 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل هناك كود واضح وعملي لتقسيم الصفحات ؟

1
#2

و عليكم السلام و رحمة الله، و مرحباً بك عضواً جديداً بيننا أخي الكريم.

ماذا تعني بتقسيم الصفحات؟

1

رأس الحكمة الإيمان بالله

#3

أشكرك أخي

أقصد مثلا عندما أقوم بعرض نتائج بحث من قاعدة بيانات في صفحة واحدة أقوم بتقسيمها إلى عدة صفحات كل صفحة تحتوي مثلا على عشرة نتائج وهكذا

#4

هل تعني أن نتائج البحث تظهر علي datagrid ؟؟

#6

السلام عليكم

لقد قمت باستخدام هذا الكود و كان موجود في مقال على الانترنت و يمكن تعديله

وهو يستخدم فئة تسمى

PagedDataSource

و المثال مكون من اربع خطوات

اولا : خاصية تحديد الصفحة الحالية

Public Property CurrentPage() As Integer
        Get
            Dim o As Object = Me.ViewState("_CurrentPage")
            If o Is Nothing Then
                Return 0
            Else
                Return CType(o, Integer)
            End If
        End Get
        Set(ByVal Value As Integer)
            Me.ViewState("_CurrentPage") = value
        End Set
    End Property

ثانيا : الرجوع صفحة

Private Sub cmdPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrev.Click
        CurrentPage -= 1
        ItemsGet()
    End Sub

ثالثا: التقدم صفحة

Private Sub cmdNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNext.Click
        CurrentPage += 1
        ItemsGet()
    End Sub

أخير: الدالة الرئيسية

و لا تنسى وضع مصدر البيانات في اول سطر

Private Sub ItemsGet()
        Dim Items As DataSet = ' هنا تحديد مصدر البيانات من قاعد البيانات
        Dim objPds As PagedDataSource = New PagedDataSource
        objPds.DataSource = Items.Tables(0).DefaultView
        objPds.AllowPaging = True
        objPds.PageSize = 5 '  هنا تحديد عدد العناصر في الصفحة

        objPds.CurrentPageIndex = CurrentPage

        lblCurrentPage.Text = "صفحة: " + (CurrentPage + 1).ToString() + " من " + objPds.PageCount.ToString()
        cmdPrev.Enabled = Not objPds.IsFirstPage
        cmdNext.Enabled = Not objPds.IsLastPage

        Repeater1.DataSource = objPds '  Repeater1 هو العنصر المستخدم لعرض البيانات
        Repeater1.DataBind()
    End Sub

و في بداية الصفحة يتم استدعاء هذه الدالة

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       
        If Not IsPostBack Then
            ItemsGet()
        End If

    End Sub

و من المفتر وجود عناصر لتفيذ المثال و هي Repeater و يسمى Repeater1 او datagrid

label يعرض عدد الصفحات و الصفحة الحالية و يسمى lblCurrentPage

و عدد 2 button للتحرك في الصفحات

الاول يسمى cmdPrev

و الثاني cmdNext

كالتالي

<P align="center"><asp:label id="lblCurrentPage" runat="server"></asp:label></P>
<P align="center">
    <asp:button id="cmdPrev" runat="server" Text="سابق"></asp:button>
    <asp:button id="cmdNext" runat="server" Text="تالي"></asp:button>
</P>

ارجو من الله ان اكون قد افادتكم

#7

أشكركم جميعا على هذا التجاوب

وياأخ TODO شكر خاص على هذا الكود الذي كنت أبحث عنه منذ مدة ومن الواضح أنه مرتب وسهل الفهم سأحاول تجربته

هذا الموضوع مغلق.

مواضيع مشابهة