ASP.NET數(shù)據(jù)驗(yàn)證中的驗(yàn)證組淺析
ASP.NET數(shù)據(jù)驗(yàn)證中的驗(yàn)證組是什么概念呢?讓我們開始講述:
ASP.NET數(shù)據(jù)驗(yàn)證是為了防止用戶錄入錯(cuò)誤數(shù)據(jù)或者漏掉必須填寫的數(shù)據(jù)而使得服務(wù)器出現(xiàn)不必要的錯(cuò)誤,ASP.NET有驗(yàn)證控件方便我們進(jìn)行數(shù)據(jù)驗(yàn)證,但是有時(shí)會(huì)出現(xiàn)這樣或者那樣的問題,我今天就遇到了一個(gè),把驗(yàn)證控件說一下吧
- ﹤asp:TextBox ID="TextBox1" runat="server"﹥﹤/asp:TextBox﹥
- ﹤asp:RequiredFieldValidator ID="RequiredFieldValidator1"
- ControlToValidate="TextBox1" runat="server" ErrorMessage="RequiredFieldValidator"﹥
- ﹤/asp:RequiredFieldValidator﹥
- ﹤asp:Button ID="Button1" runat="server" Text="Button1" /﹥
上面的ASP.NET數(shù)據(jù)驗(yàn)證代碼實(shí)現(xiàn)了最基本的驗(yàn)證,用戶如果不輸入信息而直接點(diǎn)擊Button1那么ErrorMessage就會(huì)顯示出來
- ﹤asp:TextBox ID="TextBox1" runat="server"﹥﹤/asp:TextBox﹥
- ﹤asp:RequiredFieldValidator ID="RequiredFieldValidator1"
- ControlToValidate="TextBox1" runat="server" ErrorMessage="RequiredFieldValidator"﹥
- ﹤/asp:RequiredFieldValidator﹥
- ﹤asp:Button ID="Button1" runat="server" Text="Button1" /﹥
- ﹤asp:Button ID="Button2" runat="server" Text="Button2" /﹥
在上面的ASP.NET數(shù)據(jù)驗(yàn)證代碼中用戶如果不輸入信息而點(diǎn)擊Button1或者Button2那么ErrorMessage都會(huì)顯示出來.如果我不想讓Button2引發(fā)驗(yàn)證怎么辦呢? 好辦,給Button2添加一個(gè)屬性 CausesValidation="false" 如下
- ﹤asp:TextBox ID="TextBox1" runat="server"﹥﹤/asp:TextBox﹥
- ﹤asp:RequiredFieldValidator ID="RequiredFieldValidator1"
- ControlToValidate="TextBox1" runat="server" ErrorMessage="RequiredFieldValidator"﹥
- ﹤/asp:RequiredFieldValidator﹥
- ﹤asp:Button ID="Button1" runat="server" Text="Button1" /﹥
- ﹤asp:Button ID="Button2" runat="server" Text="Button2" CausesValidation="false" /﹥
這樣用戶如果在不輸入信息的情況下直接點(diǎn)擊Button2 ErrorMessage就不會(huì)出現(xiàn)
但是有時(shí)候需要我們?cè)谕豁撁骝?yàn)證不同的信息,你肯定不能將按鈕的 CausesValidation="false" 加上,我們需要加的是ValidationGroup屬性
- ﹤asp:TextBox ID="TextBox1" runat="server"﹥﹤/asp:TextBox﹥
- ﹤asp:RequiredFieldValidator ID="RequiredFieldValidator1"
- ControlToValidate="TextBox1" ValidationGroup="basicInfo" runat="server" ErrorMessage="error form textbox1"﹥
- ﹤/asp:RequiredFieldValidator﹥
- ﹤asp:Button ID="Button1" ValidationGroup="basicInfo" runat="server" Text="Button1" /﹥
- ﹤asp:TextBox ID="TextBox2" runat="server"﹥﹤/asp:TextBox﹥
- ﹤asp:RequiredFieldValidator ID="RequiredFieldValidator2"
- ControlToValidate="TextBox2" ValidationGroup="moreInof" runat="server" ErrorMessage="error form textbox2" ﹥
- ﹤/asp:RequiredFieldValidator﹥
- ﹤asp:Button ID="Button2" ValidationGroup="moreInof" runat="server" Text="Button2" /﹥
這樣就實(shí)現(xiàn)了你點(diǎn)擊Button只引發(fā)對(duì)特定button的ASP.NET數(shù)據(jù)驗(yàn)證而不會(huì)影響其他的button
總結(jié):使用ASP.NET數(shù)據(jù)驗(yàn)證驗(yàn)證組可以將頁面上的驗(yàn)證控件歸為一組??梢詫?duì)每個(gè)驗(yàn)證組執(zhí)行驗(yàn)證,該驗(yàn)證與同一頁的其他驗(yàn)證組無關(guān)。
將要分組的所有控件的 ValidationGroup 屬性設(shè)置為同一個(gè)名稱(字符串)即可創(chuàng)建驗(yàn)證組??梢詾轵?yàn)證組分配任何名稱,但必須對(duì)該組的所有成員使用相同的名稱。
ASP.NET數(shù)據(jù)驗(yàn)證中驗(yàn)證組的相關(guān)信息就向你介紹到這里,希望對(duì)你理解ASP.NET數(shù)據(jù)驗(yàn)證中的驗(yàn)證組有所幫助。
【編輯推薦】