濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ASP.NET常用小技巧

ASP.NET常用小技巧

熱門(mén)標(biāo)簽:西寧電銷(xiāo)外呼系統(tǒng)公司 辦公用地圖標(biāo)注網(wǎng)點(diǎn)怎么操作 海東防封電銷(xiāo)卡 寧德防封版電銷(xiāo)卡 安陸市地圖標(biāo)注app 上海市三維地圖標(biāo)注 聊城智能電銷(xiāo)機(jī)器人電話 云南外呼系統(tǒng)代理 南昌自動(dòng)外呼系統(tǒng)線路

今天為大家介紹6個(gè)ASP.NET常用技巧,使用操作簡(jiǎn)單,具有很高的實(shí)用性,記得收藏哦

1.跟蹤頁(yè)面執(zhí)行 
設(shè)置斷點(diǎn)是頁(yè)面調(diào)試過(guò)程中的常用手段,除此之外,還可以通過(guò)查看頁(yè)面的跟蹤信息進(jìn)行錯(cuò)誤排查以及性能優(yōu)化。ASP.NET中啟用頁(yè)面跟蹤非常方便,只需在Page指令中加入Trace="True"屬性即可:設(shè)置斷點(diǎn)是頁(yè)面調(diào)試過(guò)程中的常用手段,除此之外,還可以通過(guò)查看頁(yè)面的跟蹤信息進(jìn)行錯(cuò)誤排查以及性能優(yōu)化。ASP.NET中啟用頁(yè)面跟蹤非常方便,只需在Page指令中加入Trace="True"屬性即可: 

<%@ Page Language="C#" Trace="true"> 

跟蹤信息可以分為兩類(lèi): 
a.頁(yè)面執(zhí)行詳細(xì)情況 

其中主要包括頁(yè)面生命周期中各事件列表、控件樹(shù)列表(可以查看每個(gè)控件的HTML字節(jié)數(shù)以及ViewState字節(jié)數(shù))、Session狀態(tài)、Application狀態(tài)、Cookie集合、QueryString集合、服務(wù)器變量等信息。 
b.自定義跟蹤信息 
通過(guò)在頁(yè)面代碼中調(diào)用Trace.Write()或Trace.Warn()方法便可將指定內(nèi)容寫(xiě)入跟蹤信息中的"Trace Information"節(jié)。就算頁(yè)面發(fā)生了錯(cuò)誤,跟蹤信息還是會(huì)顯示出來(lái),并且在發(fā)布應(yīng)用程序時(shí)無(wú)需刪除相關(guān)的跟蹤代碼,只需從Page指令中移除Trace屬性即可。 

2.在服務(wù)器端控件中添加客戶(hù)端屬性 
我們有時(shí)會(huì)向服務(wù)器端控件中添加一些特殊的屬性,這類(lèi)屬性不需要服務(wù)器端的處理,只需簡(jiǎn)單的發(fā)送至客戶(hù)端即可,我們不妨稱(chēng)其為客戶(hù)端屬性,例如HTML屬性或自定義屬性(可能用于實(shí)現(xiàn)某種特定的JavaScript功能)??梢酝ㄟ^(guò)以下幾種方法達(dá)到這個(gè)目的: 
a.直接向控件添加客戶(hù)端屬性 

<asp:Button ID="MyButton" Text="ClickMe" onmouseover="this.style.cursor='poi nter'" runat="server" /> 

其中的onmouseover是客戶(hù)端屬性,注意,編譯器是允許這種寫(xiě)法的,但會(huì)顯示警告。 
b.調(diào)用內(nèi)置方法 
可以通過(guò)調(diào)用WebControl.Attributes.Add()方法為控件添加客戶(hù)端屬性,如下所示: 

MyButton.Attributes.Add("onmouseover", "this.style.cursor='pointer'"); 

這也是最常用的方法。 
c.創(chuàng)建自定義控件 
如果某個(gè)類(lèi)型的服務(wù)器端控件中經(jīng)常需要添加客戶(hù)端屬性,則可以考慮創(chuàng)建一個(gè)繼承自該服務(wù)器端控件的自定義控件,其中包含特定的客戶(hù)端屬性。 
正是考慮到這一點(diǎn),ASP.NET 2.0中為按鈕控件(包括Button、LinkButton、ImageButton控件)提供了OnClientClick屬性,可以這樣寫(xiě): 

MyButton.OnClientClick = "alert('Hello!')"; 

真是貼心的功能!   

3.表單數(shù)據(jù)的服務(wù)器端驗(yàn)證 
將數(shù)據(jù)驗(yàn)證任務(wù)從服務(wù)器端遷移到客戶(hù)端的過(guò)程促使了JavaScript的產(chǎn)生,這也是我們沿用至今的一種方式。但只有在保證客戶(hù)端JavaScript正常運(yùn)行的前提下,這種方式才能發(fā)揮其作用。不幸的是,總有一些例外,比如瀏覽器不支持JavaScript,或者用戶(hù)刻意關(guān)閉了瀏覽器的JavaScript功能,這就導(dǎo)致了第一重防護(hù)失效。比較保險(xiǎn)的做法是加入第二重防護(hù),即對(duì)用戶(hù)提交的數(shù)據(jù)進(jìn)行服務(wù)器端驗(yàn)證,但這無(wú)疑將增加開(kāi)發(fā)者的工作量。 
ASP.NET 2.0提供了一系列表單數(shù)據(jù)驗(yàn)證控件,可以非常輕松的完成客戶(hù)端及服務(wù)器端的雙重?cái)?shù)據(jù)驗(yàn)證任務(wù)。但要使服務(wù)器端驗(yàn)證功能發(fā)揮作用,還需要用到Page.IsValid屬性,請(qǐng)看下面的例子: 

<form id="MyForm" runat="server">  
<div> 
  姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
<asp:RequiredField Validator ID="RequiredFieldValidator1" 
ControlToValidate="txtName" ErrorMessage="請(qǐng)?zhí)顚?xiě) 姓名!" Display="Dynamic" runat="server"></asp:RequiredFieldValidator> 
 </div>  
<div> 
  <asp:Button ID="btnSubmit" Text="提交" runat="server" />  
</div> 
</form> 

這是一個(gè)HTML片段,其中有一個(gè)RequiredFieldValidator控件用于檢查是否已填寫(xiě)姓名。下面是點(diǎn)擊按鈕時(shí)執(zhí)行的服務(wù)器端代碼: 

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
  if (Page.IsValid) //注意:不要遺漏對(duì)Page.IsValid屬性的判斷   
{ 
    Response.Write("你的名字是:" + txtName.Text);   
}
 } 

其中,要特別注意對(duì)Page.IsValid屬性的判斷,只有頁(yè)面中所有驗(yàn)證控件對(duì)數(shù)據(jù)的驗(yàn)證都成功時(shí),Page.IsValid屬性才為T(mén)rue,這代表提交的數(shù)據(jù)為有效數(shù)據(jù),可以進(jìn)入下一步操作。 

4.跳過(guò)表單驗(yàn)證 
在某些情況下,我們需要跳過(guò)表單中所有控件的驗(yàn)證,然而在另外一些情況下,我們卻希望有選擇的觸發(fā)表單中某些控件的驗(yàn)證功能。分別來(lái)看看這兩種情況: 
a.跳過(guò)所有驗(yàn)證 
假設(shè)有個(gè)表單,其中除了各種數(shù)據(jù)錄入控件外還有兩個(gè)按鈕,一個(gè)是提交按鈕,另一個(gè)是取消按鈕,同時(shí)表單中還有一些數(shù)據(jù)驗(yàn)證控件。我們希望當(dāng)點(diǎn)擊取消按鈕的時(shí)候無(wú)需驗(yàn)證表單中數(shù)據(jù)的有效性,而是直接將頁(yè)面提交至服務(wù)器并將其重定向到某個(gè)指定頁(yè)面。 
要實(shí)現(xiàn)這個(gè)功能,可以利用按鈕控件(包括Button、LinkButton、ImageButton控件)的CausesValidation屬性,將該屬性設(shè)為false即可跳過(guò)表單中的所有驗(yàn)證。 
b.觸發(fā)某些驗(yàn)證 
假設(shè)有個(gè)表單,被劃分成兩個(gè)功能區(qū),一個(gè)用于用戶(hù)登錄,另一個(gè)用于用戶(hù)注冊(cè),我們希望當(dāng)點(diǎn)擊登錄按鈕時(shí)只觸發(fā)登錄區(qū)的數(shù)據(jù)驗(yàn)證,當(dāng)點(diǎn)擊注冊(cè)按鈕時(shí)只觸發(fā)注冊(cè)區(qū)的數(shù)據(jù)驗(yàn)證。 
解決辦法是將相關(guān)的數(shù)據(jù)驗(yàn)證控件和數(shù)據(jù)提交控件(按鈕控件)加入同一個(gè)驗(yàn)證組,這一點(diǎn)是通過(guò)將各相關(guān)控件的ValidationGroup屬性設(shè)為相同的值來(lái)實(shí)現(xiàn)的。   

5.保持滾動(dòng)條位置 
假設(shè)有個(gè)頁(yè)面,其中以列表形式顯示了一些數(shù)據(jù)記錄,每次編輯其中的記錄時(shí)都需要向服務(wù)器提交頁(yè)面,為了提供良好的用戶(hù)體驗(yàn),我們希望每次編輯一條記錄并保存后,滾動(dòng)條位置都能保持不變。傳統(tǒng)的做法是每次提交頁(yè)面時(shí)將當(dāng)前滾動(dòng)條所在位置信息按某種方式(Hidden字段或QueryString)傳給服務(wù)器端,當(dāng)頁(yè)面返回客戶(hù)端時(shí),由服務(wù)器端根據(jù)傳入的位置信息以JavaScript形式重新設(shè)置滾動(dòng)條位置。 
如果通過(guò)ASP.NET來(lái)實(shí)現(xiàn)這一功能將變得非常簡(jiǎn)單,只需在Page指令中加入MaintainScrollPositionOnPostback="true"屬性即可: 

<%@ Page Language="C#" 
MaintainScrollPositionOnPostback="true"> 

6.禁用不必要的ViewState 
在ASP.NET的運(yùn)行機(jī)制中,ViewState起著重要的作用。ViewState經(jīng)過(guò)編碼后存入表單Hidden字段,每當(dāng)頁(yè)面回傳至服務(wù)器時(shí)再進(jìn)行解碼。因此,ViewState的使用會(huì)帶來(lái)兩個(gè)問(wèn)題:帶寬的占用以及計(jì)算資源的消耗。好在不是所有控件都需要啟用ViewState,我們完全可以禁用不必要的ViewState。 
ViewState默認(rèn)是開(kāi)啟的,需要手動(dòng)關(guān)閉: 

a.禁用頁(yè)面ViewState 
在Page指令中加入EnableViewState="false"屬性即可: 

<%@ Page Language="C#" EnableViewState="false"> 

加入這個(gè)屬性后,整個(gè)頁(yè)面以及其中的所有控件都將無(wú)法使用ViewState,因此需謹(jǐn)慎使用。 
b.禁用控件ViewState 
這是推薦的方式,將控件的EnableViewState屬性設(shè)為False即可禁用其ViewState,這里有個(gè)簡(jiǎn)單的竅門(mén): 
如果某個(gè)控件的狀態(tài)不能由操作者改變,則可以禁用其ViewState。最典型的莫過(guò)于Label控件了,只能顯示信息,無(wú)法操作。 
但TextBox、DorpDownList等控件的狀態(tài)是可以改變的(通過(guò)輸入、選擇等操作),因此保留他們的ViewState還是有用的。

以上就是小編為大家整理的ASP.NET的6個(gè)小技巧,希望大家喜歡。

您可能感興趣的文章:
  • asp.net下GDI+的一些常用應(yīng)用(水印,文字,圓角處理)技巧
  • ASP.NET User Control使用技巧一則
  • asp.net下PageMethods使用技巧
  • asp.net 開(kāi)發(fā)的一些常用技巧
  • asp.net項(xiàng)目開(kāi)發(fā)中用到的小技巧
  • VS初始化命令 ASP.NET常用技巧
  • ASP.net Textbox的技巧使用
  • asp.net中Null在從數(shù)據(jù)庫(kù)讀取的時(shí)候的一點(diǎn)點(diǎn)小技巧
  • ASP.NET 后臺(tái)登錄小技巧介紹
  • Asp.Net性能優(yōu)化技巧匯總
  • ASP.NET的實(shí)用技巧詳細(xì)介紹

標(biāo)簽:洛陽(yáng) 南寧 贛州 青海 崇左 汕尾 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET常用小技巧》,本文關(guān)鍵詞  ASP.NET,常用,小,技巧,ASP.NET,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET常用小技巧》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ASP.NET常用小技巧的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    武宣县| 茂名市| 扶余县| 双柏县| 富源县| 夏邑县| 宜宾市| 内丘县| 镇安县| 高唐县| 枣强县| 蕲春县| 陕西省| 大新县| 伽师县| 勃利县| 偃师市| 西昌市| 高清| 麻阳| 虎林市| 建德市| 莱阳市| 蕲春县| 繁峙县| 家居| 麻城市| 汉阴县| 习水县| 泌阳县| 盘锦市| 米泉市| 青阳县| 城市| 含山县| 安丘市| 遵义县| 繁昌县| 鹤壁市| 东方市| 白水县|