ตอนนี้. นักพัฒนาจำนวนมากใช้ฟังก์ชัน WebResource ของ ASP.NET 2.0 อยู่แล้ว WebResource ช่วยให้เราสามารถฝังทรัพยากรลงในแอสเซมบลีได้ รวมถึงรูปภาพ ข้อความ ฯลฯ
เมื่อแนะนำ WebResource เราต้องแนะนำ WebResource.axd มาดูที่
script language="javascript" src="WebResource.axd?a=s&r=WebUIValidation.js&t=631944362841472848" type="text/javascript"></ script >ปัจจุบัน ฉันพบว่าพารามิเตอร์ของ webResource.axd แตกต่างจากเวอร์ชันปัจจุบัน แนะนำคุณสมบัติในบทความก่อนหน้านี้:
ชื่อการชุมนุม
ชื่อไฟล์ทรัพยากร
เวลาที่ชุดประกอบถูกแก้ไขครั้งล่าสุด
webResource.axd เป็นเพียงการแมปใน ISAPI คุณยังสามารถใช้ IhttpHandler ได้ <add verb="GET" path="WebResource.axd" type="System.Web.Handlers.AssemblyResourceLoader" /> webResource.axd ใช้คลาส AssemblyResourceLoader เพื่อปรับแต่งการประมวลผลคำขอ HTTP และระบุว่าโปรแกรมใดมาจากตาม โปรแกรมที่ส่งผ่านแบบสอบถามจะรับทรัพยากรใดในแอสเซมบลี
ข้อมูลต่อไปนี้ใช้ตัวควบคุมสปินเนอร์เป็นตัวอย่าง
ขั้นตอนการใช้งาน:
เพิ่มทรัพยากรที่จะฝัง (เช่น รูปภาพ) ลงในรายการ ในตัวจัดการทรัพยากร คลิก ไฟล์ เลือกทรัพยากรที่ฝังในการดำเนินการสร้างในหน้าต่างคุณสมบัติ
เพิ่มไฟล์ต่อไปนี้ลงในไฟล์assessbly.cs ของคุณ
[แอสเซมบลี: WebResource("Obies.Web.UI.WebControls.NumericTextBox.js", "application/x-javascript")]
[assembly: WebResource("Obies.Web.UI.WebControls.NumericTextBox_Silver_BtnUp.gif", "image/gif")] โปรดทราบรูปแบบ WebResourceAttribute:
[แอสเซมบลี: WebResourceAttribute("MyNameSpaces.Resources.MyImage.gif", "image/gif")]
ในซอร์สโค้ดการควบคุม คุณต้องใช้รหัสต่อไปนี้เพื่อรับภาพ
// รับ URL ของ WebResource สำหรับรูปภาพ GIF ที่ฝัง
สตริง BtnUpImgSrc = this.Page.ClientScript.GetWebResourceUrl(typeof(NumericTextBox)
"Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet.ToString() + "_BtnUp.gif");วิธีการ GetWebResourceUrl:รับการอ้างอิง URL ไปยังทรัพยากรฝั่งเซิร์ฟเวอร์ )
ฉันพบมันในเวอร์ชันก่อนหน้า การใช้งานคือ: this.page.GetWebResourceUrl
โค้ดด้านบนรับชื่ออิมเมจจากแอสเซมบลีที่ระบุ: Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet.ToString() + "_BtnUp.gif มัน สิ่งที่ส่งคืนคือ ที่อยู่อ้างอิง URL ของทรัพยากรฝั่งเซิร์ฟเวอร์ คล้ายกับ:
WebResource.axd?d=gWYJBlnQKynoTePlJ34jxyoSpR2Rh9lpYd8ZrSl0&t=632812333820000000
นอกจากนี้ MS ยังมีคลาสส่วนหัวอีกด้วย คลาส Header ส่วนใหญ่ทำงานบน <Head runat="server"></head> ในหน้า HTML รวมทั้งชื่อเรื่องด้วย ฮ่าๆ การปรับเปลี่ยนชื่อเรื่องของเพจในอนาคตจะเป็นเรื่องง่ายมาก
this.Header.Title = "นี่คือชื่อเพจใหม่";
เพิ่มสไตล์ CSS (แอตทริบิวต์สไตล์) Style style = new Style();
style.ForeColor = System. Drawing.Color.Navy;
style.BackColor = System. Drawing.Color.LightGray;
// เพิ่มสไตล์ให้กับส่วนหัวสำหรับเนื้อหาของหน้า
this.Header.StyleSheet.CreateStyleRule (สไตล์, null, "เนื้อหา");
การป้องกันแทนที่เป็นโมฆะ OnPreRender (EventArgs e) {
// รับ URL ของ WebResource สำหรับสคริปต์ JS หลักและลงทะเบียน
this.Page.ClientScript.RegisterClientScriptResource (typeof (NumericTextBox)
"Obies.Web.UI.WebControls.NumericTextBox.js");
// รับ URL ของ WebResource สำหรับ CSS ที่ฝังไว้
สตริง css = this.Page.ClientScript.GetWebResourceUrl (typeof (NumericTextBox)
"Obies.Web.UI.WebControls.NumericTextBox_" + this.ImageSet + ".css");
//ลงทะเบียน CSS
// this.Page.StyleSheetTheme = css;
//this.Page.Header.LinkedStyleSheets.Add (css);
//วิธีการเวอร์ชันก่อนหน้า? สามารถแก้ไขได้ด้วยรหัสต่อไปนี้เท่านั้น
ลิงค์ HtmlLink = HtmlLink ใหม่();
link.Attributes.Add("ประเภท", "ข้อความ/css");
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("href", css);
this.Page.Header.Controls.Add (ลิงก์)
;
นี่คือภาพหน้าจอของ
วิธีใช้ตัวควบคุมสปินเนอร์:
<%@ register tagprefix="cc" namespace="Obies.Web.UI.WebControls" assembly="Obies.Web.UI.WebControls" %>
<cc:NumericTextBox width="50" ImageSet="Silver" length=" 2" runat="เซิร์ฟเวอร์" id="NumericTextBox1"
maxvalue="10" minvalue="0"></cc:NumericTextBox>
<cc:NumericTextBox width="50" ImageSet="Green" length="2" runat="server" id="NumericTextBox2"
maxvalue="10" minvalue="0"></cc:NumericTextBox>
ที่อยู่แหล่งที่มา: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
dnvs05/html/webresource.asp
เนื่องจากปัญหาบางประการกับโค้ดต้นฉบับ VS2005 รุ่นล่าสุดจึงไม่รองรับคุณสมบัติหลายอย่าง จึงมีการปรับเปลี่ยน
ดาวน์โหลดซอร์สโค้ด: