熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

自定義創建web驗證控件

2013-11-13 10:15:29  來源: .NET編程 

  做開發的都知道在VS裡提供了很多的驗證控件比如RequiredFieldValidator RangeValidatorRegularExpressionValidator等等他們都是繼承於BaseValidator這個基類BaseValidator類是一個抽象(abstract)類它要求子類必須實現一個方法EvaluateIsValid——當被檢驗的表單字段通過驗證時返回True

  BaseValidator類也包含一些其他的方法可以重寫(override)或做別的用途這些方法中最有用的是下面這個

  GetControlValidationValue——用於獲取被驗證的控件的值

  創建自定義驗證控件時要重寫EvaluateIsValid()方法並在EvaluateIsValid()方法中調用GetControlValidationValue來獲得被驗證的表單字段的值

  接下來就來創建一個驗證最少字符個數

  首先先創建一個類放在項目的App_Code文件夾裡所有加入到這個文件夾的類都會自動被ASPNET Framework編譯

  

  下面是類的內容

  using System;

  using SystemCollectionsGeneric;

  using SystemLinq;

  using SystemText;

  //在類中添加

  using SystemWeb;

  using SystemWebUI;

  using SystemWebUIWebControls;

  namespace WebApp_Model

  {

  public class StudentMinLengthValidate : BaseValidator

  {

  int _minLength = ;

  public int MinLength

  {

  get { return _minLength; }

  set { _minLength = value; }

  }

  protected override bool EvaluateIsValid()

  {

  string value = thisGetControlValidationValue(thisControlToValidate);

  if (valueLength < _minLength)

  return false;

  else

  return true;

  }

  }

  }

  這樣驗證的類就OK了

  接下來就是怎麼用該類了

  其實用該類的方式跟VS裡的驗證控件是一樣的因為都是繼承於BaseValidate

  首先先注冊一下我們剛才建的類

  <%@ Register TagPrefix=custom Namespace=WebApp_Model %>

  aspx頁面上放一個textbox控件

  <asp:TextBox ID=textbox runat=server></asp:TextBox>

  放入該驗證控件

  <custom:StudentMinLengthValidate id=valCustom Runat=server MinLength= ControlToValidate=textbox ErrorMessage=字符太少 />

  再加入按鈕進行檢驗一下

  <asp:Button ID=Button runat=server onclick=Button_Click Text=Button />

  後台代碼

  protected void Button_Click(object sender EventArgs e)

  {

  if (PageIsValid)

  {

  ResponseWrite(true);

  }

  }

  演示效果

  輸入

  

  輸入…超過十位

  


From:http://tw.wingwit.com/Article/program/net/201311/13078.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.