السلام عليكم
هل هناك كود واضح وعملي لتقسيم الصفحات ؟
السلام عليكم
هل هناك كود واضح وعملي لتقسيم الصفحات ؟
و عليكم السلام و رحمة الله، و مرحباً بك عضواً جديداً بيننا أخي الكريم.
ماذا تعني بتقسيم الصفحات؟
رأس الحكمة الإيمان بالله
أشكرك أخي
أقصد مثلا عندما أقوم بعرض نتائج بحث من قاعدة بيانات في صفحة واحدة أقوم بتقسيمها إلى عدة صفحات كل صفحة تحتوي مثلا على عشرة نتائج وهكذا
هل تعني أن نتائج البحث تظهر علي datagrid ؟؟
الأخ يسأل عن ال Custom Paging و طبعا هو من خصائص ال DataGrid.
من هنا تجد ما تريد
You can fly while you can touch the sky
السلام عليكم
لقد قمت باستخدام هذا الكود و كان موجود في مقال على الانترنت و يمكن تعديله
وهو يستخدم فئة تسمى
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>
ارجو من الله ان اكون قد افادتكم
أشكركم جميعا على هذا التجاوب
وياأخ TODO شكر خاص على هذا الكود الذي كنت أبحث عنه منذ مدة ومن الواضح أنه مرتب وسهل الفهم سأحاول تجربته
هذا الموضوع مغلق.