تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
محاكاة الـsitemapPath بطريقة سهلة
#1





أحببت كتابة الحل والطريقة التي اعجبتني نوعا ما بموضوع مستقل هنا وارجو ان يكون هذا الموضوع بمكانه المناسب
اول الامر نحتاج اداة بمكان موجود بكل الصفحات وهذا يضطرنا لاستخدام صفحة الماستربيج حيث ان اي اداة فيها ستكون مرئية في كل الصفحات
لنضع الان اداة Literal في منطقة ما في الماستربيج ولتكن اسفل الهيدر واعلى شريط عناوين الصفحات او شريط التنقل
لنعطي الاداة اسم وليكن "nav"
الخطوة الثانية لنكتب في موديول التعميمات التالية:
'تخزين الروابط في متغيرات

لحظة شوف التحديث
!!! تحديث !!!

نسيت ان اذكر انه ضمن مصادر الصفحات الاخرى المطلوب الوصول لاداة في الماستر بيج من خلالها ان نكتب في ثاني سطر الكود التالي:
كود :
<%@ MasterType VirtualPath="~/MasterPage.master" %>
خلاص كمل




كود :
Public nvdefault As String = ""
    Public nvshowform As String = ""
    Public nvshowthread As String = ""
    '***********************

ثم بحدث تحميل صفحة default.aspx وهي الرئيسية نكتب الكود التالي:
كود :
nvdefault = "<a href='./default.aspx'>الصفحة الرئيسية</a>"
Dim mynav As Literal = DirectCast(Master.FindControl("nav"), Literal)
mynav.Text = nvdefault ' Request.Url.PathAndQuery



لنشرح الكود:
السطر الاول وهو:
كود :
nvdefault = "<a href='./default.aspx'>الصفحة الرئيسية</a>"

وهو اسناد اسم الصفحة الرئيسية ورابطها للمتغير الخاص بها اي بالصفحة الرئيسية


السطر الثاني وهو:
كود :
Dim mynav As Literal = DirectCast(Master.FindControl("nav"), Literal)

هو للوصول للاداة التي اضفناها في الماستربيج باسم "nav"


السطر الثالث وهو:
كود :
mynav.Text = nvdefault

اسناد متغير الصفحة الرئيسية للاداة mynav
[[هنا كود حل مؤقت تذكره جيدا]]
------------------------
الان نذهب لصفحة عرض العناوين showform ونكتب بحدث تحميلها الكود التالي:
كود :
'تغيير  محتوى literal
        If Not IsPostBack Then
            nvshowform = nvdefault & " < <a href='" & Request.Url.PathAndQuery & "'>" & Request.QueryString("fn") & "</a>"
        End If
        Dim mynav As Literal = DirectCast(Master.FindControl("nav"), Literal)
        mynav.Text = nvshowform  ' Request.Url.PathAndQuery



طبعا هذا الكود اكثره html من حيث اضافة طابع الرابط مثل الصفحة السابقة لكن هنا توجد اكواد فيجوال بيسك مهمة وهي موجودة هنا
[b]{ معلومة} .. معلومات Request
[/b]



المهم الان متغير nvshowform اسندنا له متغير nvdefault اي رابط واسم الصفحة الرئيسية وختمناها بالاسناد للمتغير او الاداة الموجودة بالماستربيج
كود :
mynav.Text = nvshowform


-----------------


الان توجه لصفحة عرض الموضوع showthread.aspx
وبحدث تحميلها اكتب
كود :
'تغيير  محتوى literal         If Not IsPostBack Then
            Dim mynav As Literal = DirectCast(Master.FindControl("nav"), Literal)
            nvshowthread = nvshowform & " < <a href='" & Request.Url.PathAndQuery & "'>" & Request.QueryString("thn") & "</a>"
            mynav.Text = nvshowthread
        End If
        ' انتهاء تغيير محتوى literal


طبعا فيه اشياء قد لاتعمل معك مثل متغير
كود :
Request.QueryString("thn")
لانها مرسلة من صفحة سابقة فقط لعرض اسم الموضوع في الاداة
-----------------------------------------------------
الان انتهينا من برمجة المحاكي بقي حل اشكال وهو هنا اقصد الاشكال اما حله المؤقت هنا وهو ان نفرغ متغير اسم المنتدى ورابطه بحدث تحميل الصفحة الرئيسية
كود :
nvshowform = ""      
nvshowthread = ""





ساجهز مثال باذن الله تعالى وارفعه بقسم المشاريع (وهذا هو المثال بالقسم مثال محاكاة الـ sitemapPath)
ارجو ان اكون قدمت لكم شيئا مفيدا
عيدكم مبارك
الرد }}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم