CustomValidator內建驗證控制項介紹
- 2008-11-24
- 19657
- 0
demo最近上班的時候經常在製作表單的輸入介面,前人留下來的都是在儲存之前一個一個if的去找例外,寫得很亂也很煩,於是就找了CustomValidato的用法,第一次使用的感想是,早就該用這好玩意啦!!!有需要驗證的朋友也可以試試看。
直接丟頁面來看看
<body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="CustomValidator" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator> </div> </form> </body>
我頁面中丟了兩個文字方塊與一個CustomValidator驗證控制項,因該沒有一個現成的控制項可以判定textbox1輸入特定字串後再判定textbox2的字串來決定是否通過驗證,所以要靠CustomValidator來達到此效果。
我們在CustomValidator的SercerValidate事件中寫了以下的code
if (args.Value == "abc") { if (this.TextBox2.Text == "def") { args.IsValid = true; } else { this.CustomValidator1.ErrorMessage = "第二段文字不是def"; args.IsValid = false; } } else { this.CustomValidator1.ErrorMessage = "第一段文字不是abc"; args.IsValid = false; }
然後再建立一個按鈕在click事件中如此寫
protected void Button1_Click(object sender, EventArgs e) { if (IsValid) Response.Write("驗證成功"); else Response.Write("驗證失敗"); }
在驗證的if中demo利用了兩種方式抓值使用args.Value可以抓到驗證控制項驗證的值,當然你也可以直接指定TextBox1.Text所以在應用上相當的自然而且方便,如果要單純驗證輸入的資料是否已經存在資料庫,也可以將autopostback打開,或是加上AJAX來達到更高的使用者介面,在此推薦給你啦。
回應討論