ASP.NET 2.0解決Button與驗證控件沖突:ValidationGroup
問題描述:在一個頁面里創(chuàng)建多個按鈕,其中默認情況下Button與驗證控件沖突:當其中的一個按鈕被點擊后想要特定的validator被激發(fā)而不是頁面中的所有validator(如驗證用戶名是否可用)。而其他按鈕則不需要validator。此時會都會啟用數(shù)據(jù)驗證控件。
說明:在asp.net 1.1中除了hack code沒有更好的辦法解決Button與驗證控件沖突的問題。asp.net 2.0中給所有的驗證控件和按鈕(button、linkbutton等等)增加了ValidatorGroup屬性,就可以輕松地解決這個問題。如果在頁面中有一個TextBox并且緊挨著他有一個RequiredFieldValidator 和Button控件,可以將RequiredFieldValidator和Button的ValidationGroup屬性設(shè)置成一樣的值從而使得點 擊button時只觸發(fā)這個RequiredFieldValidator的validor,任何沒有定義在ValidationGroup內(nèi)的其他的 validator都會被忽略。
例子:
文本框和數(shù)據(jù)驗證控件:
- < asp:TextBox ID="TxtOldPs" runat="server" Width="150px">< /asp:TextBox>
- < asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtOldPs"
- Display="None" ErrorMessage="< b>友情提醒< /b>< br />請輸入原始密碼!!" ValidationGroup="ValidataGroup1">< /asp:RequiredFieldValidator>
按鈕事件:
- < asp:Button ID="ButtonOK" runat="server" Text="修改" OnClick="Edit_Click" ValidationGroup="ValidataGroup1" />
另一個按鈕 則不需要設(shè)置ValidationGroup
- < asp:Button ID="ButtonOK" runat="server" Text="退出" OnClick="Exit_Click" />
這樣就通過ValidationGroup解決了Button與驗證控件沖突的問題。
【編輯推薦】