NET開發-WebForm必填驗證對TextBox控制項的非空驗證及屬性的使用

2021-01-12 一都編程
.NET開發-非空驗證控制項

1.概述

在ASP.NET Web應用程式中,對於網頁上的驗證,一般情況下都是在客戶端使用JavaScript代碼進行驗證,但是對於初學者而言或基於微軟的.NET開發者而言,對JavaScript代碼並不熟悉,此時微軟就為我們提供了一套ASP.NET驗證控制項。

這一套ASP.NET驗證控制項可以滿足所有的標準數據驗證,並且ASP.NET驗證控制項是雙重驗證的:客戶端驗證(JavaScript實現)和伺服器端驗證(C#代碼實現),這樣就不怕客戶端腳本代碼攻擊了,保證了驗證數據的準確性。

2.解決兼容性

注意:對於ASP.NET 4.5之前的版本,是可以直接使用ASP.NET驗證控制項的,但是對於ASP.NET 4.5及以後的版本,則可能會出現如下圖的錯誤信息:

這是因為從ASP.NET 4.5版本開始,ASP.NET驗證控制項的客戶端驗證使用了UnobtrusiveValidationMode 模式(jQuery工具)來驗證。

要解決此問題有多種辦法,這裡介紹兩種簡單的方法:

1) 在Visual Studio 2019中將ASP.NET目標框架修改為ASP.NET 4.0。

2) ASP.NET 4.5的情況下,在Page_Load()方法中編寫如下代碼:

protected void Page_Load(object sender, EventArgs e){ UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;}3) ASP.NET 4.5的情況下,或在Web.Config中的<configuration>節點下添加如下代碼:

<appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/></appSettings>這三種辦法都可以輕鬆的讓你使用ASP.NET 驗證控制項。

3.驗證控制項的使用

ASP.NET WebForm中的所有驗證控制項都是存放在工具箱的「驗證」類別中的。如下圖所示:

在上圖中,可以看到WebForm中總共有6個驗證控制項。

4.RequiredFieldValidator控制項

在ASP.NET WebForm中,RequiredFieldValidator控制項是非空(或必填)驗證控制項,用於驗證文本框值的必須性。

4.1. ControlToValidate屬性

在RequiredFieldValidator控制項中,使用ControlToValidate屬性來與TextBox控制項的ID值綁定。這樣可以對TextBox文本框實現非空驗證。需要執行一下「提交」按鈕才可實施驗證。

Html代碼如下:

使用ControlToValidate建立綁定關係之後,該必填驗證控制項就會驗證TextBox控制項的必填性。

運行一下結果,如下圖所示:

在上圖中單擊一下「提交」按鈕,效果如下圖所示:

在上圖中出現的「RequiredFieldValidator」是驗證未通過時出現的提示信息。是ErrorMessage屬性指定的值。

4.2. ErrorMessage屬性

RequiredFieldValidator中的ErrorMessage屬性用於在驗證沒有通過時出現的驗證錯誤信息。

對於RequiredFieldValidator驗證控制項,默認的錯誤信息是:「RequiredFieldValidator」。現在修改一下:

<html><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>RequiredFieldValidator驗證控制項</title></head><body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="用戶名必填。"></asp:RequiredFieldValidator> <asp:Button ID="Button1" runat="server" Text="提交" /> </div> </form></body></html>在上面的Html代碼中,將ErrorMessage屬性的值修改為「用戶名必填。」。運行一下結果,如下圖所示:

當文本框的值為空時,單擊「提交」按鈕,則會出現錯誤信息,如果輸入內容,則錯誤信息會消失,驗證通過。如下圖所示:

當驗證通過之後,就會向伺服器提交數據,並執行「提交」按鈕的事件代碼。

4.3. Display屬性

在上圖我們發現,文本框和按鈕之間有一些空白,這個空白區域就是驗證控制項所佔的位置。使用Display屬性可以設置驗證控制項的顯示行為,默認值為Static,靜態的,驗證提示信息佔有一定的固定位置。

Display屬性的值如下說明:

1) Static:默認值,靜態的,會為驗證信息佔一定的位置空間。

2) None:驗證信息不顯示。

3) Dynamic:動態的分配驗證信息所佔空間,當沒有錯誤信息顯示時,不佔用空間,顯示時才佔用空間。

4.4. EnableClientScript屬性

EnableClientScript屬性用於設置驗證控制項是否啟用客戶端驗證:

EnableClientScript=」true」啟用客戶端驗證,默認值。

EnableClientScript=」false」禁用客戶端驗證。

如果禁用了客戶端驗證,則在C#代碼中需要使用如下代碼來判斷是否通過驗證:

if (this.Page.IsValid)//驗證通過{ Response.Write("你好");}4.5. Text屬性

Text屬性用來獲取或設置驗證失敗時驗證控制項中顯示的文本。

ErrorMessage屬性用來獲取或設置驗證失敗時 System.Web.UI.WebControls.ValidationSummary 控制項中顯示的錯誤消息的文本。

如果頁面上沒有ValidationSummary控制項,則ErrorMessage和Text屬性的作用一樣。

相關焦點

  • NET開發-WebForm文本框比較驗證,及Type、Operator等屬性的使用
    .NET開發-比較驗證1. 概述ASP.NET WebForm中的CompareValidator控制項是比較驗證控制項。ControlToValidate屬性使用CompareValidator控制項的ControlToValidate屬性來與TextBox控制項的ID值綁定,使CompareValidator控制項能控制文本框控制項進而對文本框的值進行比較。
  • NET開發-WebForm範圍驗證控制項最小值、最大值及數據類型的設置
    RangeValidator概述在ASP.NET WebForm應用程式中,RangeValidator控制項是範圍驗證控制項。用於檢驗文本框中輸入的值是否在指定的範圍之內(包括最小值和最大值),比較的數據類型有多種,如:數字、日期、字符串等,可以使用Type屬性指定。
  • NET開發-WebForm中TextBox控制項ID、Text、TextModel等屬性的使用
    .NET開發-WebForm中的TextBox控制項1. TextBox概述在ASP.NET Web應用程式中,TextBox控制項是文本框控制項。TextBox屬性TextBox在C#中其實就是一個類,其中包括了許多的屬性和方法。其中在ASPX頁面上,使用的就是屬性。TextBox存在於System.Web.UI.WebControls命名空間中。2.1. ID屬性ID屬性是每個ASP.NET WebForm應用程式伺服器控制項必須具備的屬性,用來指定控制項的唯一ID值。
  • NET開發-ASP.NET WebForm應用程式中,使用C#操作TextBox的屬性
    在Visual Studio中,可以直接將文本框控制項拖放到需要的位置上,如果網頁採用表格布局,則直接拖放到相應的單元格上即可,使用方法與Label控制項是一樣的。1.2. 屬性1.2.1. ID屬性ID屬性是每個asp.net每個伺服器控制項必須具備的屬性,用來指定控制項的唯一ID值。
  • NET開發-在ASP.NET WebForm應用程式中使用C#操作Label控制項的屬性
    在ASP.NET WebForm框架中,Label控制項是微軟對HTML的span標記進行了封裝,使可以在後臺代碼中,使用C#代碼給span標記賦值。在Visual Studio中,可以在「工具欄」中直接拖拽Label控制項到Web窗體上。
  • NET開發-WebForm中ValidationSummary設置顯示模式、標題文本屬性
    ValidationSummary控制項概述ASP.NET WebForm應用程式中的ValidationSummary控制項是匯總錯誤信息驗證控制項。用於顯示驗證錯誤信息的摘要控制項,可以將所有驗證控制項的ErrorMessage屬性指定的錯誤信息統一顯示出來。
  • NET開發-WebForm中Web控制項是伺服器控制項,按鈕、標籤控制項如何使用
    .NET開發-Button和Label控制項1.ASP.NET伺服器控制項必須存在runat=」server」屬性,也是為了標識這是伺服器控制項。如:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>TextBox表示文本框控制項,其中ID和runat這兩個屬性是所有ASP.NET伺服器控制項必須具有的屬性。
  • 使用Html+JavaScript實現表單上用戶名和密碼的非空驗證案例
    我們可以將在C#後端開發中使用的一些表單驗證技巧用在JavaScript表單驗證中。語言不同,但原理都是一樣的。目標:練習JavaScript給文本框賦值和取值,並進行非空判斷。非空驗證是為了保證禁止將空數據保存到資料庫中,起到一個數據完整性的作用。
  • Angular10教程--6.2 表單驗證
    : {{firstName.valid | json}} <br> errors: {{firstName.errors | json}} </div> </div> <div class="form-group"> <label> Last Name: <input type="text" formControlName
  • 處理並驗證TextBox,RichTextBox和ComboBox中的輸入鍵入和按鍵
    由於其使用簡單,加上高度可定製的屬性,不僅可以阻止輸入輸入和按鍵,還可以通過使用正則表達式進行ComboBox驗證,還可以驗證輸入的輸入是否在項目列表中,包括更多功能。這是它可以做什麼的列表。Handled.Input T1 = new Handled.Input(textBox1);(提示:如果您希望多個控制項的行為相同,您也可以傳遞多個用逗號分隔的控制項)。然後,您可以使用類的實例對象開始設置。
  • 原創:.NET中winform與webform互相通訊實例
    原創:.NET中winform與webform互相通訊實例 現在C#越來越多朋友使用了,大家都知道.NET可以開發winform與webform頁面,有時候在開發項目過程中要結合BS+CS這樣來應用
  • 開發控制項集 ComponentOne .NET 2019V2:新增.NET Core數據引擎
    >>ComponentOne .NET開發控制項集2019V2下載地址ComponentOne .NET開發控制項集 2019V2 將從以下三個方面闡述版本功能以及更新特性: ComponentOne 2019V2 新增的 .NET開發控制項及功能 ComponentOne 中已有控制項增強
  • 在ASP.NET MVC5視圖模型中應用必填、正則表達式、比較等模型驗證
    二、創建視圖模型類:在使用Visual Studio 2019開發的ASP.NET MVC 5項目的「Models」文件夾中創建的Model是ViewModel,也就是視圖模型,是供Razor視圖使用的。
  • .NET Core應用框架Util介紹(五)
    可以看出,標準組件是業務開發的基礎,我們必須將標準組件的開發效率提升到極致。 使用標準組件的問題 直接使用原生標準組件有什麼問題呢? 下拉列表並不是唯一需要數據綁定的組件,還有一些組件也需要,且它們更加複雜,比如樹型控制項,表格控制項,樹型表格控制項等。數據綁定成為前端業務開發的第二個關注點。
  • 文本框小部件TextBox——WindowsForm系列教程
    像我們使用的其他小部件一樣,我們可以獲取或設置Text屬性來訪問 TextBox 的內容。一切簡單易懂。事實上,它並沒有真正變得更加複雜,但如果我們停在這裡,仍然會缺少一些東西。在普通 Windows 應用程式中,當你在文本框中按 Enter 時,應用程式將執行操作。
  • ASP.NET控制項10個最有用的屬性詳解
    【IT168 專稿】對於微軟平臺開發人員而言,每天都要和各種ASP.NET控制項打交道,本文不打算介紹各種控制項的具體使用方法,相反,我只想和大家分享一下ASP.NET控制項最有用的10個屬性,相信讀完本文可提升你的開發技能。
  • .NET面試題總結(一)---獻給即將找工作的同行們
    靜態構造函數的典型用途是:當類使用日誌文件時,將使用這種構造函數向日誌文件中寫入項。什麼是.net?     .net是一種平臺和框架, .net 不是單純的語言也不是單純的工具,它是從底層平臺開始構建起來的一個整體框架請以圖示方式解釋.net framework?
  • 使用React和HTML5表單驗證API處理表單
    我們在任何地方都使用它們,幾乎每個庫和框架。但是React呢?Facebook就如何處理表單提供了有限的意見。主要是為交互事件訂閱表單和控制項,並通過「value」屬性傳遞狀態。因此表單驗證和提交邏輯取決於您。體面的用戶界面意味著你可以覆蓋「on submit」/「on input」欄位驗證,內聯錯誤消息,根據有效性切換元素,「原始」,「提交」狀態等邏輯。
  • NET開發-在ASP.NET WebForm應用程式的Button中,使用C#提交數據
    按鈕控制項是在網頁上提交表單數據使用的,可以執行一個事件處理程序,將按鈕控制項拖放到aspx頁面上之後,雙擊按鈕,就會自動創建事件處理程序,我們只需要編寫代碼即可。如下圖的aspx頁面上,拖放了一個Button按鈕控制項:Button按鈕的ID值一般都以「btn」開頭,後面是有意義的單詞。如:btnOK、btnSave等。