Walter, Thank you for your answer. However, I don't have buttons, all I have
is another textbox which causevalidation set to false, but AutoPostBack set
to true in order to trigger TextChanged event.
Here is my code for Conposite Control EmailTextBox (Let's use Email instead
of PhoneNumber),
====================begin of EmailTextBox =====
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
namespace EnterpriseLibrary.WebControls
{
[DefaultProperty("Value")]
[ToolboxData("<{0}:ncEmailTextBox runat=server></{0}:ncEmailTextBox>")]
public class ncEmailTextBox : CompositeControl
{
private TextBox txtEmail = new TextBox();
private RegularExpressionValidator VldtrEmail;
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Value
{
get
{
return txtEmail.Text;
}
set
{
EnsureChildControls();
txtEmail.Text = value;
}
}
protected override void CreateChildControls()
{
txtEmail.ID = this.ID + "_Email";
txtEmail.Width = 140;
VldtrEmail = new RegularExpressionValidator();
VldtrEmail.ID = this.ID + "_VldtrEmail";
VldtrEmail.ControlToValidate = txtEmail.ID;
VldtrEmail.ValidationExpression =
@"^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$";
VldtrEmail.Text = "Invalid email format.";
VldtrEmail.Display = ValidatorDisplay.Static;
this.Controls.Add(txtEmail);
this.Controls.Add(VldtrEmail);
base.CreateChildControls();
}
public override void RenderControl(System.Web.UI.HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Table);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
txtEmail.RenderControl(writer);
VldtrEmail.RenderControl(writer);
writer.RenderEndTag(); // td
writer.RenderEndTag(); // tr
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.RenderEndTag();//td
writer.RenderEndTag();//tr
writer.RenderEndTag(); // table
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}
}
}
============ end of EmailTextBox ==================
Code for the Page:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="play.aspx.cs"
Inherits="play" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="
http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr><td>Composite Control Email:</td><td><nc:ncEmailTextBox ID="Email"
runat="server" /></td></tr>
<tr><td>Some TextBox with AutoPostBack:</td><td><asp:TextBox ID="TextBox1"
runat="server" AutoPostBack="true"
OnTextChanged="TextBox1_TextChanged"></asp:TextBox></td></tr>
</table>
</form>
</body>
</html>
[quoted text, click to view] "Walter Wang [MSFT]" <wawang@online.microsoft.com> wrote in message
news:g1sVKQnKHHA.2488@TK2MSFTNGHUB02.phx.gbl...
> Hi HipHop,
>
> I am interested in this issue. Would you mind letting me know the result
> of
> the suggestions? If you need further assistance, feel free to let me know.
> I will be more than happy to be of assistance.
>
> Have a great day!
>
> Regards,
> Walter Wang (wawang@online.microsoft.com, remove 'online.')
> Microsoft Online Community Support
>
> ==================================================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ==================================================
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>