19765604
Hi,
On the client, you need to use a function named ValidatorEnable to turn
specific validators on or off. On the server, you need to override the
Validate event and add code to enable/disable specific validators.
Notice that I'm careful to replicate the enable/disable state of each
validator in the server Validate event to be the same state as it was on
the client. Errors here could cause bugs that are hard to track down.
The following sample uses two text boxes for users to login & two for new
users to sign up. All four have required field validators. (with this
simple example, it would have been more elegant to use just one set of two
text boxes. However, I expect that your login & sign-up sections are
different from each other).
This whole sample has almost no error handling since it's just a sample.
The "broken" mode merely turns on all validators on the server & blocks
almost any activity,
**** CODE-BEHIND
Public Overrides Sub Validate()
RequiredFieldValidator1.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "Login")
RequiredFieldValidator2.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "Login")
RequiredFieldValidator3.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "NewUser")
RequiredFieldValidator4.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "NewUser")
MyBase.Validate()
End Sub
**** ASPX PAGE
<HTML>
<HEAD>
<title>ValidatedLogin1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="
http://schemas.microsoft.com/intellisense/ie5"
name="vs_targetSchema">
<script>
function ToLogin() {
Form1.Mode.value = "Broken"
Form1.Button1.value = "Login";
Form1.Button2.value = "New visitors click here";
Form1.TextBox1.disabled="";
Form1.TextBox2.disabled="";
Form1.TextBox3.disabled="disabled";
Form1.TextBox4.disabled="disabled";
Form1.TextBox1.style.visibility = "";
Form1.TextBox2.style.visibility = "";
Form1.TextBox3.style.visibility = "hidden";
Form1.TextBox4.style.visibility = "hidden";
ValidatorEnable(RequiredFieldValidator1, true);
ValidatorEnable(RequiredFieldValidator2, true);
ValidatorEnable(RequiredFieldValidator3, false);
ValidatorEnable(RequiredFieldValidator4, false);
Form1.TextBox3.value="";
Form1.TextBox4.value="";
Form1.Mode.value = "Login"
}
function ToNewUser() {
Form1.Mode.value = "Broken"
Form1.Button1.value = "Click here if you already have an account";
Form1.Button2.value = "Register new name and password";
Form1.TextBox1.disabled="disabled";
Form1.TextBox2.disabled="disabled";
Form1.TextBox3.disabled="";
Form1.TextBox4.disabled="";
Form1.TextBox1.style.visibility = "hidden";
Form1.TextBox2.style.visibility = "hidden";
Form1.TextBox3.style.visibility = "";
Form1.TextBox4.style.visibility = "";
ValidatorEnable(RequiredFieldValidator1, false);
ValidatorEnable(RequiredFieldValidator2, false);
ValidatorEnable(RequiredFieldValidator3, true);
ValidatorEnable(RequiredFieldValidator4, true);
Form1.TextBox1.value="";
Form1.TextBox2.value="";
Form1.Mode.value = "NewUser"
}
function LoginClick() {
if (Form1.Mode.value = "Broken")
ToLogin();
if (Form1.Mode.value = "NewUser")
ToLogin();
if (Form1.Mode.value = "Login")
{
if (typeof(Page_ClientValidate) == 'function')
{
Page_ClientValidate();
if (Page_IsValid)
Form1.submit();
}
else
{
Form1.submit()
}
}
}
function NewUserClick() {
if (Form1.Mode.value = "Broken")
ToNewUser();
if (Form1.Mode.value = "Login")
ToNewUser();
if (Form1.Mode.value = "NewUser")
{
if (typeof(Page_ClientValidate) == 'function')
{
Page_ClientValidate();
if (Page_IsValid)
Form1.submit();
}
else
{
Form1.submit()
}
}
}
</script>
</HEAD>
<body onload="ToLogin();">
<form id="Form1" method="post" runat="server">
<P><INPUT id="Mode" type="hidden" name="Mode" runat="server">
<br>
<asp:textbox id="TextBox1"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator1" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox1"></asp:requiredfieldvalidator><BR>
<asp:textbox id="TextBox2"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator2" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox2"></asp:requiredfieldvalidator><BR>
<INPUT id="Button1" type="button" value="Button" name="Button1"
onclick="LoginClick();"><BR>
<hr>
<BR>
<INPUT id="Button2" type="button" value="Button" name="Button2"
onclick="NewUserClick();"><BR>
<asp:textbox id="TextBox3"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator3" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox3"></asp:requiredfieldvalidator><BR>
<asp:textbox id="TextBox4"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator4" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox4"></asp:requiredfieldvalidator>
<P></P>
<P></P>
</form>
</body>
</HTML>
Thank you, Mike
Microsoft, ASP.NET Support Professional
Microsoft highly recommends to all of our customers that they visit the
http://www.microsoft.com/protect site and perform the three straightforward
steps listed to improve your computer's security.
This posting is provided "AS IS", with no warranties, and confers no rights.
--------------------