六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

深入講解 ASP+ 驗證(二)

[摘要]服務(wù)器端的驗證序列 了解頁面的有效期非常重要。如果習(xí)慣于在 Visual Basic 或類似功能齊全的客戶機工具中處理表單,則需要花一定的時間來了解。頁面和頁面上的所有對象并非在與用戶交互時一直有效...
服務(wù)器端的驗證序列

了解頁面的有效期非常重要。如果習(xí)慣于在 Visual Basic 或類似功能齊全的客戶機工具中處理表單,則需要花一定的時間來了解。頁面和頁面上的所有對象并非在與用戶交互時一直有效,盡管有時表面上是這樣。

以下是在第一次訪問某個頁面時一個簡化的事件序列:

基于 ASPX 文件創(chuàng)建頁面及其控件。
觸發(fā) Page_Load 事件。
頁面和控件屬性保存在一個隱藏字段中。
頁面和控件轉(zhuǎn)換到 HTML。
丟棄所有內(nèi)容。
現(xiàn)在,當用戶單擊某個按鈕或類似控件時,將返回服務(wù)器,然后執(zhí)行一個類似的事件序列。該序列稱為返回序列:

基于 ASPX 文件創(chuàng)建頁面及其控件。
從隱藏字段恢復(fù)頁面和控件屬性。
根據(jù)用戶輸入更新頁面控件。
觸發(fā) Page_Load 事件。
觸發(fā)更改通知事件。
頁面和控件屬性保存在一個隱藏字段中。
頁面和控件轉(zhuǎn)換到 HTML。
再次丟棄所有內(nèi)容。
我們?yōu)槭裁床粚⑺袑ο蟊A粼趦?nèi)存中呢?因為使用 ASP+ 建立的 Web 站點無法處理數(shù)量非常大的用戶。因此,服務(wù)器的內(nèi)存中只保留馬上要處理的內(nèi)容。

何時進行服務(wù)器端驗證?在第一次獲取頁面信息時,根本不會進行服務(wù)器端驗證。大多數(shù)最終用戶都非常認真,我們允許用戶自己確認在表單中填寫的信息是否正確,然后我們再使用紅色的文字通知用戶填錯的信息。

在返回事件序列中,第 3 步和第 4 步之間會進行驗證。也就是說,進行驗證是在來自用戶的數(shù)據(jù)裝回控件屬性后,但在大多數(shù)代碼執(zhí)行之前。這意味著在編寫用戶事件代碼時,通常可以利用已經(jīng)進行的驗證。一般情況下,您都會希望這樣做。

在該時刻進行驗證的缺點是:如果您要通過編程來修改某些影響該驗證的屬性,該時刻就太遲了。例如,您會發(fā)現(xiàn),如果通過編寫代碼來啟用或禁用驗證控件或更改驗證控件的屬性,在下一次處理該頁之前,不會看到任何影響。通過以下兩種方法可以避免這個問題:

在進行驗證之前修改屬性。
在屬性更改之后重新驗證控件。
這兩種方法均需要使用在 Page 對象上有效的驗證屬性和方法。

頁面 API

Page 對象包含一些與服務(wù)器端驗證有關(guān)的重要屬性和方法。表 1 中總結(jié)了這些屬性和方法:

表 1. Page 對象的屬性和方法

屬性或方法 說明
IsValid 屬性 這是最有用的屬性。該屬性可以檢查整個表單是否有效。通常在更新數(shù)據(jù)庫之前進行該檢查。只有 Validators 集中的所有對象全部有效,該屬性才為真,并且不將該值存入緩存。
Validators 屬性 該頁所有驗證對象的集合。這是實現(xiàn) IValidator 界面的對象的集合。
Validate 方法 在驗證時調(diào)用的一種方法。在 Page 對象上默認的執(zhí)行方式是轉(zhuǎn)至每個驗證器,并要求各驗證器自行評估。


Validators 集合對于許多任務(wù)都非常有用。該集合是實現(xiàn) IValidator 界面的對象的集合。我之所以使用對象這個詞,而不是使用控件,是因為 Page 對象只關(guān)注 IValidator 界面。既然所有的驗證器通常都是用來實現(xiàn) IValidator 的一些可視化控件,那么任何人都應(yīng)能夠使用任意的驗證對象,并將驗證對象加入頁面中。

IValidator 界面包含以下屬性和方法:

表 2. IValidator 界面的屬性和方法

屬性或方法 說明
IsValid 屬性 指出單獨的驗證對象進行的有效性檢查是否已經(jīng)通過。您可以在驗證后手工更改該值。
ErrorMessage 屬性 介紹驗證對象要驗證的錯誤以及可能會向用戶顯示的錯誤。
Validate 方法 對驗證對象執(zhí)行有效性檢查,以更新其 IsValid 值。


您可以使用該界面執(zhí)行一些有趣的任務(wù)。例如,要將頁面重置為有效的狀態(tài),請使用以下代碼(如 C# 中的示例所示):

IValidator val;
foreach(val in Validators) {
Val.IsValid = true;
}

要重新執(zhí)行整個驗證序列,請使用以下代碼:

IValidator val;
foreach(val in Validators) {
Val.Validate();
}

如果有 Beta 1 版或更高版本,也可以只對 Page 對象調(diào)用 Validate 方法,這樣可以完成相同的任務(wù)。要在驗證前進行某些更改,可以覆蓋 Validate 方法。本例顯示一個包含驗證器的頁面,其中的驗證器根據(jù)復(fù)選框的值開或關(guān):

public class Conditional : Page {
public HtmlInputCheckBox chkSameAs;
public RequiredFieldValidator rfvalShipAddress;

protected override void Validate() {
//只檢查到貨地址(如果與付款地址不同)
bool enableShip = !chkSameAs.Checked;
rfvalShipAddress.Enabled = enableShip;
//現(xiàn)在執(zhí)行驗證
base.Validate();
}
}





主站蜘蛛池模板: 性久久久久久久久 | 亚洲日韩中文字幕在线播放 | 日本在线日本中文字幕日本在线视频播放 | 欧美特级| 亚洲an天堂an在线观看 | 天天躁天天狠天天透 | 天天搞天天 | 日韩在线观看一区二区三区 | 欧美一级视频在线高清观看 | 青青色在线视频 | 亚欧免费视频一区二区三区 | 日韩生活片| 青青草国产免费久久久下载 | 青草色视频 | 日日噜噜噜夜夜爽爽狠狠视频 | 亚洲五月综合网色九月色 | 中文精品视频一区二区在线观看 | 无码中文字幕乱在线观看 | 日韩爱爱网站 | 日本不卡高清免费v日本 | 天天综合天天干 | 中文字幕日韩一区二区不卡 | 一级黄色片aaa | 啪啪大秀 | 日韩国产一区二区 | 色综合综合色综合色综合 | 中文字幕亚洲综久久2021 | 影音先锋国产 | 日本韩国高清 | 午夜影院在线视频 | 日本高清免费中文在线看 | 深夜视频在线观看免费 | 亚洲永久免费视频 | 色视频线观看在线播放 | 日本免费高清视频 | 四虎在线永久 | 亚洲永久视频 | 在线观看亚洲天堂 | 青草社区视频 | 小明www永久在线看 小黄鸭b站视频在线 | 人人揉揉揉人人捏人人看 |