成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET編程中的實用技巧

開發 后端
本文主要介紹asp.net編程中的一些常用方法,內容涉及代碼技巧、性能優化等方面。

ASP.NET編程技巧:跟蹤頁面執行

設置斷點是頁面調試過程中的常用手段,除此之外,還可以通過查看頁面的跟蹤信息進行錯誤排查以及性能優化。asp.net中啟用頁面跟蹤非常方便,只需在Page指令中加入Trace="True"屬性即可:

  1. < %@ Page Language="C#" Trace="true"

跟蹤信息可以分為兩類:

 a.頁面執行詳細情況

其中主要包括頁面生命周期中各事件列表、控件樹列表(可以查看每個控件的HTML字節數以及ViewState字節數)、Session狀態、Application狀態、Cookie集合、QueryString集合、服務器變量等信息。

 b.自定義跟蹤信息

通過在頁面代碼中調用Trace.Write()或Trace.Warn()方法便可將指定內容寫入跟蹤信息中的"Trace Information"節。就算頁面發生了錯誤,跟蹤信息還是會顯示出來,并且在發布應用程序時無需刪除相關的跟蹤代碼,只需從Page指令中移除Trace屬性即可。

ASP.NET編程技巧:在服務器端控件中添加客戶端屬性

我們有時會向服務器端控件中添加一些特殊的屬性,這類屬性不需要服務器端的處理,只需簡單的發送至客戶端即可,我們不妨稱其為客戶端屬性,例如HTML屬性或自定義屬性(可能用于實現某種特定的JavaScript功能)。可以通過以下幾種方法達到這個目的:

a.直接向控件添加客戶端屬性

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

其中的onmouseover是客戶端屬性,注意,編譯器是允許這種寫法的,但會顯示警告。

 b.調用內置方法

可以通過調用WebControl.Attributes.Add()方法為控件添加客戶端屬性,如下所示:

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

這也是最常用的方法。

c.創建自定義控件

如果某個類型的服務器端控件中經常需要添加客戶端屬性,則可以考慮創建一個繼承自該服務器端控件的自定義控件,其中包含特定的客戶端屬性。

正是考慮到這一點,asp.net 2.0中為按鈕控件(包括Button、LinkButton、ImageButton控件)提供了OnClientClick屬性,可以這樣寫:

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

真是貼心的功能!

ASP.NET編程技巧:表單數據的服務器端驗證

將數據驗證任務從服務器端遷移到客戶端的過程促使了JavaScript的產生,這也是我們沿用至今的一種方式。但只有在保證客戶端JavaScript正常運行的前提下,這種方式才能發揮其作用。不幸的是,總有一些例外,比如瀏覽器不支持JavaScript,或者用戶刻意關閉了瀏覽器的JavaScript功能,這就導致了第一重防護失效。比較保險的做法是加入第二重防護,即對用戶提交的數據進行服務器端驗證,但這無疑將增加開發者的工作量。

 asp.net 2.0提供了一系列表單數據驗證控件,可以非常輕松的完成客戶端及服務器端的雙重數據驗證任務。但要使服務器端驗證功能發揮作用,還需要用到Page.IsValid屬性,請看下面的例子:

  1. < form id="MyForm" runat="server">  
  2.   < div>  
  3.     姓名:< asp:TextBox ID="txtName" runat="server">< /asp:TextBox> < asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtName" ErrorMessage="請填寫姓名!" Display="Dynamic" runat="server">< /asp:RequiredFieldValidator>  
  4.   < /div>  
  5.   < div>  
  6.     < asp:Button ID="btnSubmit" Text="提交" runat="server" />  
  7.   < /div>  
  8. < /form>  

這是一個HTML片段,其中有一個RequiredFieldValidator控件用于檢查是否已填寫姓名。下面是點擊按鈕時執行的服務器端代碼:

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

其中,要特別注意對Page.IsValid屬性的判斷,只有頁面中所有驗證控件對數據的驗證都成功時,Page.IsValid屬性才為True,這代表提交的數據為有效數據,可以進入下一步操作。

ASP.NET編程技巧:跳過表單驗證

在某些情況下,我們需要跳過表單中所有控件的驗證,然而在另外一些情況下,我們卻希望有選擇的觸發表單中某些控件的驗證功能。分別來看看這兩種情況:

a.跳過所有驗證

假設有個表單,其中除了各種數據錄入控件外還有兩個按鈕,一個是提交按鈕,另一個是取消按鈕,同時表單中還有一些數據驗證控件。我們希望當點擊取消按鈕的時候無需驗證表單中數據的有效性,而是直接將頁面提交至服務器并將其重定向到某個指定頁面。

要實現這個功能,可以利用按鈕控件(包括Button、LinkButton、ImageButton控件)的CausesValidation屬性,將該屬性設為false即可跳過表單中的所有驗證。

b.觸發某些驗證

假設有個表單,被劃分成兩個功能區,一個用于用戶登錄,另一個用于用戶注冊,我們希望當點擊登錄按鈕時只觸發登錄區的數據驗證,當點擊注冊按鈕時只觸發注冊區的數據驗證。

解決辦法是將相關的數據驗證控件和數據提交控件(按鈕控件)加入同一個驗證組,這一點是通過將各相關控件的ValidationGroup屬性設為相同的值來實現的。

保持滾動條位置

假設有個頁面,其中以列表形式顯示了一些數據記錄,每次編輯其中的記錄時都需要向服務器提交頁面,為了提供良好的用戶體驗,我們希望每次編輯一條記錄并保存后,滾動條位置都能保持不變。傳統的做法是每次提交頁面時將當前滾動條所在位置信息按某種方式(Hidden字段或QueryString)傳給服務器端,當頁面返回客戶端時,由服務器端根據傳入的位置信息以JavaScript形式重新設置滾動條位置。

如果通過asp.net來實現這一功能將變得非常簡單,只需在Page指令中加入MaintainScrollPositionOnPostback="true"屬性即可:

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

ASP.NET編程技巧:禁用不必要的ViewState

在asp.net的運行機制中,ViewState起著重要的作用。ViewState經過編碼后存入表單Hidden字段,每當頁面回傳至服務器時再進行解碼。因此,ViewState的使用會帶來兩個問題:帶寬的占用以及計算資源的消耗。好在不是所有控件都需要啟用ViewState,我們完全可以禁用不必要的ViewState。

ViewState默認是開啟的,需要手動關閉:

a.禁用頁面ViewState

在Page指令中加入EnableViewState="false"屬性即可:

  1. < %@ Page Language="C#" EnableViewState="false"

加入這個屬性后,整個頁面以及其中的所有控件都將無法使用ViewState,因此需謹慎使用。

b.禁用控件ViewState

這是推薦的方式,將控件的EnableViewState屬性設為False即可禁用其ViewState,這里有個簡單的竅門:

如果某個控件的狀態不能由操作者改變,則可以禁用其ViewState。最典型的莫過于Label控件了,只能顯示信息,無法操作。

但TextBox、DorpDownList等控件的狀態是可以改變的(通過輸入、選擇等操作),因此保留他們的ViewState還是有用的。

以上就是asp.net編程中的一些常用方法和實用技巧,希望對大家有所幫助。

【編輯推薦】

  1. 如何在IIS6.0中部署asp.net mvc程序
  2. 用Winform傻瓜式搭建asp.net mvc框架
  3. ASP.NET Session失效的編程思路
  4. ASP.NET Session 狀態的存儲
  5. 了解ASP.NET Web應用程序模型

責任編輯:book05 來源: 博客園
相關推薦

2009-01-03 09:34:30

ASP.NET.NET性能優化

2011-07-06 11:15:09

ASP.NET

2009-07-23 13:00:37

ASP.NET編程

2009-07-23 13:23:53

ASP.NET編程

2015-03-02 14:47:01

MySQLMySQL編程技術

2009-07-24 12:14:17

asp.net技巧

2010-01-14 10:18:24

VB.NET List

2024-05-22 09:29:43

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2024-09-11 16:30:55

Python函數編程

2009-08-03 13:38:18

ASP.NET編程模型

2009-12-21 15:50:39

2009-09-04 10:27:28

Linux實用技巧linux操作系統linux

2022-03-23 09:18:10

Git技巧Linux

2009-07-24 15:41:00

ASP.NET編程入門

2009-07-24 18:02:46

ASP.NET編程

2009-07-24 10:10:22

ASP.NET

2009-07-24 16:17:42

WebRequestEASP.NET

2009-07-29 13:32:06

ASP.NET控件使用

2009-07-29 13:42:25

ASP.NET注釋
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人二区 | 国产精品一区视频 | 亚洲国产中文字幕 | 亚洲第一色av | 日韩一区二区视频 | 亚洲一区二区三区久久久 | 337p日本欧洲亚洲大胆精蜜臀 | 久久伊 | 成人久久久久久久久 | 精品国产一区二区三区久久影院 | 一区二区三区电影网 | 精精国产视频 | 91免费看片 | 国产精品免费一区二区三区 | 成人性生交大片免费看r链接 | 中文视频在线 | 精品在线一区 | 青草久久免费视频 | 国产精品一区三区 | 亚洲激情综合网 | 91精品国产综合久久久久久丝袜 | 日本高清中文字幕 | 欧美日韩电影一区二区 | 免费一级网站 | 欧美精品二区 | 亚洲一区国产精品 | 亚洲国产精品一区二区久久 | 国产精品免费看 | 蜜桃av人人夜夜澡人人爽 | 四虎影视1304t | 欧美成人hd | 久草新在线| 久久日韩粉嫩一区二区三区 | 亚洲男人天堂2024 | 国产成人精品免费 | 日韩中文一区 | 久久成人精品一区二区三区 | 亚洲成人精品国产 | 欧美国产亚洲一区二区 | 日韩一区二区三区视频 | 精品国产99 |