0
我已經創建了文本框自定義驗證控件,我在我的aspx頁面中使用了它,它的工作起來很好,找到長度意味着它是空的意味着它會正確驗證 但現在想要增強這個,就像我想輸入我的電子郵件ID那麼第一個條件是,它不應該是空的,其次是它應該是格式[email protected]。 如果它是空的意味着我需要顯示錯誤消息,如「請輸入電子郵件ID!」如果不是以上格式,請顯示'請輸入正確的電子郵件地址!!'。文本框自定義驗證
here is my code,
TextboxCustomValidation.aspx
namespace TextboxCustomValidator
{
public class TextboxCustomValidation : BaseValidator
{
protected override void OnPreRender(EventArgs e)
{
if (this.DetermineRenderUplevel() && this.EnableClientScript)
{
Page.ClientScript.RegisterExpandoAttribute(this.ClientID, "evaluationfunction", "CheckTextboxvalid");
this.CreateJavaScript();
}
base.OnPreRender(e);
}
protected void CreateJavaScript()
{
StringBuilder sb = new StringBuilder();
sb.Append(@"<script type=""text/javascript"">function CheckTextboxvalid(ctrl){");
sb.Append(@"var txtlength = document.getElementById(document.getElementById(ctrl.id).controltovalidate);");
sb.Append(@"if(txtlength.value.length>2){");
sb.Append(@"return true; }else");
sb.Append(@" {return false;} ");
sb.Append(@"}</script>");
Page.ClientScript.RegisterClientScriptBlock(GetType(), "JSScript", sb.ToString());
}
protected override bool ControlPropertiesValid()
{
TextBox txt = FindControl(ControlToValidate) as TextBox;
return (txt != null);
}
protected override bool EvaluateIsValid()
{
return CheckTextboxIsValidorNot();
}
protected bool CheckTextboxIsValidorNot()
{
TextBox txtControlName = (TextBox)FindControl(this.ControlToValidate);
if (txtControlName.Text.Length > 0)
return true;
else
return false;
}
}
}
**MyTextBoxValidation.aspx**
<%@ Register TagPrefix="TCV" Namespace="TextboxCustomValidator" %>
<body>
<form id="form1" runat="server">
<div>
UserName :
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<TCV:TextboxCustomValidation ControlToValidate="txtUserName" ErrorMessage="Please enter username !!"
EnableClientScript="true" runat="server"></TCV:TextboxCustomValidation>
<asp:TextBox ID="txtEmailId" runat="server"></asp:TextBox>
<TCV:TextboxCustomValidation ControlToValidate="txtEmailId" ErrorMessage="please enter txtEmailId!!" EnableClientScript="false"
runat="server">
</TCV:TextboxCustomValidation>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="Save_Click" />
</div>
</form>
</body>
</html>
幫我, 任何回覆手段將不勝感激。