ในโปรแกรม ASP ก่อนหน้านี้ เรามักจะใช้ Response.Write เพื่อส่งออกข้อมูลส่วนหัวของเว็บเพจแบบไดนามิก แต่ใน ASP.NET สิ่งที่เรียกว่าหลักการชี้นำของการแยกโค้ดและ UI ไม่ต้องการให้เราทำเช่นนี้อีกต่อไป (แน่นอน ถ้าคุณ ยินดี คุณสามารถทำได้ ท้ายที่สุด มันเป็นเพียงข้อเสนอแนะ) ฉันเคยเห็นคนอื่นใช้ <title ranut="server" id="titleControl">ชื่อเริ่มต้น</title> เพื่อตั้งชื่อ แต่ฉันไม่ต้องการ ไม่คิดว่าจะดีมากเพราะมันจะสร้าง redundant id=" titleControl" โดยส่วนตัวแล้วรู้สึกว่าควรใช้ Literal control ดีกว่า เพราะมันไม่สร้างตัวอักษรซ้ำซ้อน :) บางคนใช้ js เพื่อตั้งชื่อแบบไดนามิกด้วย แต่สิ่งที่คุณขอให้เครื่องมือค้นหาทำ
จริง ๆ แล้วเป็นเรื่องง่ายมากในการควบคุมข้อมูลส่วนหัวของเพจ เพียงแค่ดูการสาธิตก่อน: http://www.lvjiyong.com/demo/aspnet/setheader/
การสาธิตนั้นง่ายมาก คุณสามารถดาวน์โหลดซอร์สโค้ดและดูอย่างละเอียดได้ โดย
ส่วนใหญ่แล้วจะใช้
คำอธิบายประกอบทั้งหมด
วิธีการนี้ถูกวางไว้ใน BasePage ครั้งต่อไปที่คุณปล่อยให้ WebForm สืบทอดคลาส BasePage คุณสามารถเรียกมันได้ ใช้ Literal เพื่อตั้งค่าข้อมูล Title
ตัวอักษรช่วยให้เราสามารถตั้งค่าข้อมูลข้อความได้โดยตรง เมื่อใช้งาน อันดับแรกเราจะให้โปรแกรมค้นหาว่ามีการควบคุมตัวอักษรที่ระบุหรือไม่ และหากเป็นเช่นนั้น ให้ตั้งค่าข้อความ
/***////// <สรุป>
/// ตั้งค่าข้อมูลหัวหน้า
/// </สรุป>
/// <param name="_name">การควบคุม</param>
/// <param name="_control">ข้อความ</param>
setHeader โมฆะส่วนตัว (สตริง _control, สตริง _text)
-
ตัวอักษร obj = this.FindControl(_control) เป็นตัวอักษร;
ถ้า(obj != null)
-
obj.Text = _text;
-
-
ตัวอย่างเช่น หากเราตั้งค่า <asp:Literal id="PageTitle" runat="server" /> ในพื้นที่ Head เราสามารถตั้งชื่อหัวข้อได้ดังนี้
/***////// <สรุป>
///ตั้งชื่อเว็บเพจ
/// </สรุป>
/// <param name="_title">ชื่อเว็บเพจ</param>
ป้องกัน SetTitle เป็นโมฆะ (สตริง _title)
-
setHeader("PageTitle","<title>" + _title + "</title>");
ใน WebFrom เราสามารถตั้งชื่อได้ดังนี้
this.SetTitle("บล็อกของลู");
วิธีการคำอธิบาย คำหลัก ฯลฯ เหมือนกัน แต่คุณต้องตั้งค่า Meta ฉันจะไม่เข้าไปดูซอร์สโค้ด
ตอนนี้ฉันจะพูดถึงการโหลด js และ css เราใช้การควบคุม PlaceHolder เหตุใดจึงใช้สิ่งนี้แทนตัวอักษร?
โดยทั่วไป PlaceHolder จะครอบครองตำแหน่งเท่านั้น ซึ่งอำนวยความสะดวกให้เราโหลดการควบคุมแบบไดนามิก ซึ่งจะทำให้การโหลด js และ css สะดวกยิ่งขึ้น อันดับแรก เรายังพบการควบคุม PlaceHolder ที่ระบุด้วย
/***////// <สรุป>
/// ค้นหาคอนเทนเนอร์ PlaceHolder ของ LoadHeader
/// </สรุป>
/// <ส่งคืน></ส่งคืน>
การควบคุมส่วนตัว findHeader()
-
กลับสิ่งนี้ FindControl("LoadHeader");
} จากนั้นเพิ่มการควบคุมแบบไดนามิก
/***////// <สรุป>
/// โหลดตัวควบคุมลงในตัวควบคุม PlaceHolder
/// </สรุป>
/// <ชื่อพารามิเตอร์="_obj"></param>
โมฆะที่ได้รับการป้องกัน LoadPlaceHolder (HtmlGenericControl _obj)
-
objHeader = findHeader() เป็นตัวควบคุม;
//โหลดไฟล์สคริปต์
ถ้า(objHeader != null)
-
objHeader.Controls.Add
(_obj);
}ในการโหลด CSS หรือ JS อันดับแรกเราจะใช้ HtmlGenericControl เพื่อสร้างการควบคุมย่อย จากนั้นจึงเพิ่มลงในการควบคุม PlaceHolder
/***////// <สรุป>
/// โหลดไฟล์สไตล์ชีตที่ระบุ
/// </สรุป>
/// <param name="_cssPath">ที่อยู่ไฟล์สไตล์ชีต</param>
ป้องกันโมฆะ LoadCss (สตริง _cssPath)
-
HtmlGenericControl objCss = HtmlGenericControl ใหม่ ("ลิงก์");
objCss.Attributes["rel"] = "สไตล์ชีท";
objCss.Attributes["type"] = "ข้อความ/css";
objCss.Attributes["href"] = _cssPath;
objCss.Attributes["สื่อ"] = "หน้าจอ";
นี้. LoadPlaceHolder (objCss);
-
จากนั้นเมื่อเราต้องการโหลดสไตล์ชีตใน WebForm เราก็จำเป็นต้องใช้
this.LoadCss("Style Sheet Address"); มันเหมือนกับการโหลด js ฉันจะไม่พูดถึงมัน
ฟังก์ชั่นที่ฉันเขียนในซอร์สโค้ดดีกว่าที่กล่าวไว้เล็กน้อย ที่นี่ คุณสามารถดาวน์โหลดและดูได้ ตัวคุณเอง.