لقد رأيت حلاً جيدًا على موقع أحد الأجانب، لذا قمت بتجميعه ببساطة:
في تطبيق ASP.NET، غالبًا ما يكون من الضروري تعديل عنوان الصفحة ديناميكيًا. ومن الأمثلة النموذجية على ذلك أنه في عنصر تحكم التنقل في الصفحة، والذي من المتوقع أن ينقر المستخدم على الرابط، سيتم عرض المحتوى ذي الصلة في الصفحة. عنوان الصفحة، على سبيل المثال، يحتوي موقع الويب على بنية موقع الويب التالية:
إذا كانت هناك فئات كتب، ثم كانت هناك كتب صينية وفئات كتب أجنبية، فيمكنك عمومًا استخدام شكل الشجرة أو عنصر التحكم الجديد في شريط التنقل لـ asp.net 2.0.
(خريطة الموقع)، لتحقيق مثل
الكتب--->الكتب الصينية؛
الكتب---->الكتب الأجنبية وما إلى ذلك، وإذا كان من الممكن في هذا الوقت عرض مثل "الكتب-->الكتب الصينية" في جزء <العنوان> من الصفحة، فسيكون ذلك أكثر سهولة ووضوحًا.
في asp.net 2.0، يمكننا استخدام التحكم من جانب الخادم في الجزء <head> لتحقيق ذلك أولاً، نحتاج إلى إضافة علامات
<head runat="server">
ثم يمكنك تغيير محتوى العنوان في حدث page_load بالشكل التالي، مثل
Page.Header.Title = "الوقت الحالي هو: " & DateTime.Now.ToString()
، أو يمكن كتابتها ببساطة كـ page.title.
بعد ذلك، يمكننا دمجها مع عنصر تحكم خريطة الموقع بهذه الطريقة. طريقة التنفيذ هي كما يلي:
Const DEFAULT_UNNAMED_PAGE_TITLE As String = "Untitled Page"
Const DEFAULT_PAGE_TITLE كسلسلة = "مرحبًا بك في موقع الويب الخاص بي!!"
تحميل Sub Page_Load (مرسل ByVal ككائن، ByVal e As System.EventArgs) يعالجني.تحميل
"قم بتعيين عنوان الصفحة، إذا لزم الأمر."
إذا كانت String.IsNullOrEmpty(Page.Title) أو Else Page.Title = DEFAULT_UNNAMED_PAGE_TITLE إذن
إذا كان SiteMap.CurrentNode لا شيء إذن
عنوان الصفحة = DEFAULT_PAGE_TITLE
آخر
Page.Title = GetPageTitleBasedOnSiteNavigation()
'يمكن أيضًا استخدام ما يلي إذا كنت تفضل ذلك
'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion(SiteMap.CurrentNode)
نهاية إذا
نهاية إذا
نهاية
الوظيفة الخاصة الفرعية GetPageTitleBasedOnSiteNavigation() كسلسلة
إذا كان SiteMap.CurrentNode لا شيء إذن
رمي New ArgumentException("لا يمكن أن تكون العقدة الحالية لا شيء")
إنهاء إذا
كنا نزور صفحة محددة في خريطة الموقع - قم ببناء عنوان الصفحة
'استنادًا إلى مكان عقدة خريطة الموقع في التسلسل الهرمي
لإخراج Dim As String = String.Empty
DimcurrentNode As SiteMapNode = SiteMap.CurrentNode
بينما العقدة الحالية ليست شيئًا
إذا كان الإخراج.الطول> 0 ثم
الإخراج = currentNode.Title & ":" & الإخراج
آخر
الإخراج = currentNode.Title
End If
currentNode = currentNode.ParentNode
نهاية أثناء
عودة الإخراج
وظيفة النهاية
أولاً ثابتين، ثم تقوم تدريجيًا بإنشاء عقدة خريطة الموقع. في البداية، تكون العقدة فارغة، ثم تستدعي
GetPageTitleBasedOnSiteNavigation() يمكن تنفيذ هذه العملية عن طريق ربط كل عقدة خريطة موقع بسلسلة ثم إعادتها في النهاية إلى page.title. بالطبع، يمكن أيضًا تنفيذها بشكل متكرر.
المصدر: http://jackyrong.cnblogs.com/archive/2006/05/15/400345.html