منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف تقوم بعمل صفحات للمواضيع :) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم برمجة وتطوير المواقع (http://vb4arb.com/vb/forumdisplay.php?fid=51)
+--- قسم : قسم ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=52)
+---- قسم : قسم مقالات ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=54)
+---- الموضوع : كيف تقوم بعمل صفحات للمواضيع :) (/showthread.php?tid=6695)

الصفحات: 1 2 3


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 26-10-12

احاول ان شاء الله تعالى ..


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 26-10-12

الان يتم عرض الاسماء من الجدول بالتعديل التالي:
كود :
' For i As Integer = 1 To All ' اضافة العناصر في المصفوفة
            'list.Add("<a href=""Members.aspx?ID=" + i.ToString + """ target=""_blank"">Member " + i.ToString + "</a>")

            ' Next

            '||||||||||||||||||||||||||||
            Dim gt As New OleDbCommand("select * from tb", conn)
            If conn.State = System.Data.ConnectionState.Closed Then
                conn.Open()
            End If
            Dim dr As Data.OleDb.OleDbDataReader = gt.ExecuteReader
            Do While dr.Read
                'list.Add("<a href=""Members.aspx?ID=" + i.ToString + """ target=""_blank"">Member " + i.ToString + "</a>")
                list.Add("<a href=""Members.aspx?ID=" & dr.Item("tid") & """ target=""_blank"">" & dr.Item("tname") & "</a>")

            Loop
            '||||||||||||||||||||||||||||



كيف تقوم بعمل صفحات للمواضيع :) - H111er - 26-10-12

في غاية الروعة Smile
اتصور ان هذا معناه انك استطعت ربطها .. اليس كذلك ؟


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 26-10-12

انا الحين اتقدم وارجع خطوات واقول ماشاء الله تبارك الله ... احاول افهم الكود الذي وضعته انت والى الان....لكن لا يهم الاهم اني الان احاول بناء مشروع من جديد.
اخي الكريم اذا كان لدينا 21 سجل بالجدول او بالمصفوفة والعدد المطلوب بكل صفحة لنقل 5 نقوم بتقسيم 21 على 5 الناتج 4 والباقي 1
السؤال هل يمكن اختصار الكود الذي اضفته انت بهذا(اقصد مسالة التقسيم؟؟؟ -- اظن اني كل مااخطو للامام ارجعSad )


كيف تقوم بعمل صفحات للمواضيع :) - H111er - 26-10-12

كيف تقصد باختصاره ؟
انا وضعت هذا الكود على اساس ان : عدد الصفحات = عدد العناصر الكلي ÷ عدد العناصر الذي يجب عرضه في كل صفحة
مثلا لو ان عدد العناصر الكي هو 20 .. و عدد العناصر الذي يجب عرضه في كل صفحة هو 5 اذا
عدد الصفحات = 20 ÷ 5 = 4
لكن ماذا لو وجد هناك باقي ؟
مثلا اذا كان العدد الكلي هو 23 و عدد العناصر المطلوب وضعه في كل صفحة هو 5 سيكون الناتج هو 4.6
كما ترى فان هذا الناتج يعتبر خاطئ .. فعدد البيجات الذي يجب ان يظهر هو 5
لذلك نقوم بالتقريب ..عن طريق الدالة Math.Round ليصبح الرقم هو 5
لكن احيانا يكون الناتج اصلا هو 4.2 مثلا
فالتقريب سيكون 4 و هذا شيء خاطئ بالطبع . لذلك وضعنا الجملة الشرطية التي تقول اذا كان العدد المقرب اصغر من العدد الاصلي نضيف 1 اليه
هذا كل شيء ^_^
[COLOR="#FF0000"]ملاحظة : ارجو منك ان لا تقوم باستخدام الكود الا عندما تفهمه كله .. حيث انك اذا حفظته بدون فهم لن تستفاد منه قط
و اذا لم تفهم اي جزئ منه و لو حرف واحد فارجوك اخبرني
[/COLOR]
تحياتي Smile Smile Smile


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 26-10-12

بصراحة انا استفدت من مثالك الكثير والكثير قمت بالاستفادة من مثالك بحل مشكلة الصفحة الاخيرة ثم استخدمت ترقيم الصفحات مثل 123456 وهكذا


كيف تقوم بعمل صفحات للمواضيع :) - H111er - 26-10-12

ليست بقدر الفائدة التي اخذتها منك يا اخي .. SmileSmileSmileSmile


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 26-10-12

انظر للكود بالصفحة بشكل كامل وانظر للتعديل الذي اجريته حتى يتم رسم اداة هايبرلينك بعدد الصفحات ارجو لو وجدت خلل ان تقوم باصلاحه
كود :
Imports System.Data.OleDb

Partial Class _Default
    Inherits System.Web.UI.Page
    Dim page As Integer
    Dim lastpage As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim cm As New OleDbCommand("", conn)

        cm.CommandText = "select count (tid)  from tb"
        If conn.State = System.Data.ConnectionState.Closed Then
            conn.Open()
        End If
        Dim xcount As Integer = cm.ExecuteScalar

        Dim ItemsNumber As Integer = 5 'عدد العناصر في كل صفحة
        ' Dim All As Integer = 107 'العدد الكلي للعناصر
        Dim All As Integer = xcount  'العدد الكلي للعناصر
        '////////////////////////
        Dim Pages As Double = xcount / ItemsNumber 'الحصول على عدد الصفحات
        Dim Rounded As Integer = Math.Round(Pages) 'تحويل عدد الصفحات الى عدد صحيح
        If Rounded < Pages Then
            Pages = Rounded + 1
        Else
            Pages = Rounded
        End If
        For t = 1 To Pages
            Dim hyp As New HyperLink
            hyp.Text = t & "&nbsp;"
            hyp.NavigateUrl = "?page=" & t * 5 - 5
            zz.Controls.Add(hyp)

        Next
        '///////////////////////

        If IsNothing(Request.QueryString("page")) Or Request.QueryString("page") <= 0 Then
            cm.CommandText = "select top 5  * from tb"

            If conn.State = Data.ConnectionState.Closed Then
                conn.Open()
            End If

            Dim dr As OleDbDataReader = cm.ExecuteReader
            Do While dr.Read
                Dim hyp As New HyperLink
                hyp.Text = dr.Item("tname") & "<br />"
                hyp.NavigateUrl = "?tid=" & dr.Item("tid")
                tt.Controls.Add(hyp)
            Loop

        Else

            'SELECT TOP 10 * FROM [Transactions] WHERE [ID] NOT IN (SELECT TOP 10 [ID] FROM [Transactions] ORDER BY [CreatedDate] DESC) ORDER BY [CreatedDate](DESC)
            Dim p As String = Request.QueryString("page")
            cm.CommandText = "SELECT TOP 5 * FROM [tb] WHERE [tid] NOT IN (SELECT TOP " & p & " [tid] FROM [tb])"



            ' cm.CommandText = "select top 5 not in (select top 5  * from tb) * from tb"
            If conn.State = Data.ConnectionState.Closed Then
                conn.Open()
            End If

            Dim dr As OleDbDataReader = cm.ExecuteReader
            Do While dr.Read
                Dim hyp As New HyperLink
                hyp.Text = dr.Item("tname") & "<br />"
                hyp.NavigateUrl = "?tid=" & dr.Item("tid")
                Me.Controls.Add(hyp)
            Loop

        End If
    End Sub
End Class



كيف تقوم بعمل صفحات للمواضيع :) - H111er - 26-10-12

لا اتصور هناك خطا لكن لدي استفساران ..
الاول :
إقتباس : If IsNothing(Request.QueryString("page")) Or Request.QueryString("page") <= 0 Then
في الجملة الشرطية لا اجد كلمة Not .. لماذا .. لم افهمها بالشكل الواضح ..
الثاني : لماذا لا تقوم باستخدام الوسم <a> بدل من هايبرلنك ؟


كيف تقوم بعمل صفحات للمواضيع :) - سعود - 27-10-12

بالنسبة للاول عادي ممكن تستخدم النفي للشرط الموجود لكن لازم تغير جواب الشرط اي تضع مابعد else قبلها وما قبلها بعدها.
اما الثاني فالهايبر هي نفسها سيقوم فيجوال استوديو بترجمتها الى الوسم الذي ذكرت.