في برامج ASP السابقة، كنا نستخدم غالبًا Response.Write لإخراج معلومات رأس صفحة الويب ديناميكيًا، ولكن في ASP.NET، لم يعد ما يسمى بالمبدأ التوجيهي لفصل التعليمات البرمجية وواجهة المستخدم يريد منا أن نفعل ذلك (بالطبع، إذا كنت على استعداد، يمكنك ذلك، فهذا مجرد اقتراح). لقد رأيت آخرين يستخدمون <title ranut="server" id="titleControl">العنوان الافتراضي</title> لتعيين العنوان، لكنني لا أفعل ذلك. أعتقد أنه جيد جدًا لأنه سيولد معرفًا زائدًا = "titleControl" شخصيًا، أشعر أنه من الأفضل استخدام التحكم الحرفي، لأنه لا ينتج حرفًا زائدًا :). يستخدم بعض الأشخاص أيضًا js لتعيين العنوان ديناميكيًا ، ولكن ما الذي تطلب من محرك البحث أن يفعله؟ من
السهل جدًا التحكم ديناميكيًا في المعلومات الرئيسية للصفحة، ما عليك سوى مشاهدة العرض التوضيحي أولاً: http://www.lvjiyong.com/demo/aspnet/setheader/.
العرض التوضيحي بسيط للغاية. يمكنك تنزيل الكود المصدري وإلقاء نظرة فاحصة عليه.
يتم استخدام جميع التعليقات التوضيحية الحرفية وPlaceHolder بشكل أساسي.
يتم وضع الأسلوب في BasePage. في المرة التالية التي تسمح فيها لـ WebForm بوراثة فئة BasePage، يمكنك الاتصال بها. Use Literal لتعيين معلومات العنوان.
يسمح لنا الحرفي بتعيين معلومات النص مباشرة. عند استخدامه، نسمح للبرنامج أولاً بمعرفة ما إذا كان هناك عنصر تحكم حرفي محدد، وإذا كان الأمر كذلك، فقم بتعيين النص
/**//// <الملخص>
/// تعيين معلومات الرأس
/// </الملخص>
/// <param name="_name">التحكم</param>
/// <param name="_control">نص</param>
مجموعة باطلة خاصة (سلسلة _التحكم، سلسلة _نص)
{
الحرفي obj = this.FindControl(_control) كحرفي؛
إذا (obj!= فارغة)
{
obj.Text = _text;
}
}
على سبيل المثال، إذا قمنا بتعيين <asp:Literal id="PageTitle" runat="server" /> في منطقة الرأس، فيمكننا تعيين العنوان بهذه الطريقة. هنا نقوم أولاً بإعداد طريقة.
/**//// <الملخص>
///تعيين عنوان صفحة الويب
/// </الملخص>
/// <param name="_title">عنوان صفحة الويب</param>
SetTitle باطلة محمية (سلسلة _title)
{
setHeader("PageTitle"،<title>" + _title + "</title>");
في WebFrom يمكننا تعيين العنوان مثل هذا
this.SetTitle("مدونة لو");
طرق الوصف والكلمات الرئيسية وما إلى ذلك هي نفسها، لكنك تحتاج إلى تعيين Meta. لن أخوض في هذا الأمر.
الآن سأتحدث عن تحميل js وcss نحن نستخدم عنصر التحكم PlaceHolder. لماذا تستخدم هذا بدلاً من الحرفي؟
يشغل PlaceHolder بشكل عام موقعًا فقط، مما يسهل علينا تحميل عناصر التحكم ديناميكيًا، مما يجعل تحميل js وcss أكثر ملاءمة. أولاً، نجد أيضًا عنصر التحكم PlaceHolder المحدد.
/**//// <الملخص>
/// ابحث عن حاوية PlaceHolder الخاصة بـ LoadHeader
/// </الملخص>
/// <returns></returns>
التحكم الخاص findHeader()
{
إرجاع this.FindControl("LoadHeader");
} ثم قم بإضافة عنصر التحكم بشكل حيوي
/**//// <الملخص>
/// قم بتحميل عنصر التحكم إلى عنصر التحكم PlaceHolder
/// </الملخص>
/// <param name="_obj"></param>
LoadPlaceHolder الفراغ المحمي (HtmlGenericControl _obj)
{
objHeader = findHeader() as Control
;
إذا (objHeader != فارغة)
{
objHeader.Controls.Add(_obj })
;
}لتحميل CSS أو JS، نستخدم أولاً HtmlGenericControl لإنشاء عنصر تحكم تابع ثم نضيفه إلى عنصر تحكم PlaceHolder
/**//// <الملخص>
/// قم بتحميل ملف ورقة الأنماط المحددة
/// </الملخص>
/// <param name="_cssPath">عنوان ملف ورقة الأنماط</param>
LoadCss باطلة محمية (سلسلة _cssPath)
{
HtmlGenericControl objCss = new HtmlGenericControl("link");
objCss.Attributes["rel"] = "ورقة الأنماط";
objCss.Attributes["type"] = "text/css";
objCss.Attributes["href"] = _cssPath;
objCss.Attributes["media"] = "screen";
this.LoadPlaceHolder(objCss);
}
ثم عندما نريد تحميل ورقة الأنماط في WebForm، نحتاج فقط إلى استخدامها
this.LoadCss("Style Sheet Address"); إنه نفس تحميل js. لن أذكر ذلك.
الوظيفة التي كتبتها في الكود المصدري أفضل قليلاً مما هو مذكور هنا نفسك.