introlux
asked on
Range validatator HELP (String)
Hi,
I would like to set a control for two things
Username: (I would like this to have a min of 4 characters abd 10 max)
Password: (I would like this to have at least 1 number and min of 6 characters and max 15 in total)
Any idea how I can achieve this?
Regards,
introlux
I would like to set a control for two things
Username: (I would like this to have a min of 4 characters abd 10 max)
Password: (I would like this to have at least 1 number and min of 6 characters and max 15 in total)
Any idea how I can achieve this?
Regards,
introlux
Does this need to be client side validation or serverside, you should generally do either both or serverside only as clientside only can be bypassed.
Use custom validator. It lets you perform the validation yourself so you could write code such as
if txtusername.text.length < 4 or txtusername.text.length > 10 then
'error
end if
if txtusername.text.length < 4 or txtusername.text.length > 10 then
'error
end if
Hi
how much validation do you want to do in your application?
you could use the microsoft enterprise libary application block.
There is a StringLengthValidator you can use :
sort of what the code would look like :
[StringLengthValidator(1, 50, Ruleset = "RuleSetA",
MessageTemplate = "First Name must be between 1 and 50 characters")]
how much validation do you want to do in your application?
you could use the microsoft enterprise libary application block.
There is a StringLengthValidator you can use :
sort of what the code would look like :
[StringLengthValidator(1, 50, Ruleset = "RuleSetA",
MessageTemplate = "First Name must be between 1 and 50 characters")]
ASKER
I would just prefer to use the validation controls on client side. As its only a minor username and password. Not going to be used heavily.
Just needed something simple to do this. I am using c# and NOT vb.
Regards,
introlux
Just needed something simple to do this. I am using c# and NOT vb.
Regards,
introlux
which framework 1, 2, 3, 3.5?
you could just implement the validating method on the control itself
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if ((textBox1.Text.Length < 3) || (textBox1.Text.Length > 10))
{
//tell user he is a doofus
}
}
private void textBox1_Validating(object
{
if ((textBox1.Text.Length < 3) || (textBox1.Text.Length > 10))
{
//tell user he is a doofus
}
}
You could use a regular expression validator.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Compiler Error Message: CS0117: 'ASP.testvalidation_aspx' does not contain a definition for 'ServerValidation'
Source Error:
Line 12:
Line 13: <asp:TextBox id="TextBox1" runat="server" />
Line 14: <asp:CustomValidator id="CustomValidator1"
Line 15: ControlToValidate="TextBox 1"
Line 16: ClientValidationFunction=" PasswordLe ngth"
Source Error:
Line 12:
Line 13: <asp:TextBox id="TextBox1" runat="server" />
Line 14: <asp:CustomValidator id="CustomValidator1"
Line 15: ControlToValidate="TextBox
Line 16: ClientValidationFunction="
ServerValidation is the function which would be executed on the server when validating. Create this procedure in the codebehind on the server.
ASKER
Compiler Error Message: CS0246: The type or namespace name 'CancelEventArgs' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 17: }
Line 18:
Line 19: private void ServerValidation(object sender, CancelEventArgs e)
Line 20: {
Line 21: if ((textBox1.Text.Length < 3) || (textBox1.Text.Length > 10))
Source Error:
Line 17: }
Line 18:
Line 19: private void ServerValidation(object sender, CancelEventArgs e)
Line 20: {
Line 21: if ((textBox1.Text.Length < 3) || (textBox1.Text.Length > 10))
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Compiler Error Message: CS0138: A using namespace directive can only be applied to namespaces; 'System.Web.UI.WebControls .ServerVal idateEvent Args' is a type not a namespace
Source Error:
Line 9: using System.Web.UI.WebControls. WebParts;
Line 10: using System.Web.UI.HtmlControls ;
Line 11: using System.Web.UI.WebControls. ServerVali dateEventA rgs;
Line 12:
Line 13: public partial class TestValidation : System.Web.UI.Page
Source Error:
Line 9: using System.Web.UI.WebControls.
Line 10: using System.Web.UI.HtmlControls
Line 11: using System.Web.UI.WebControls.
Line 12:
Line 13: public partial class TestValidation : System.Web.UI.Page
Mate, just replace this
private void ServerValidation(object sender, CancelEventArgs e)
with this
private void ServerValidation(object sender, System.Web.UI.WebControls. ServerVali dateEventA rgs e)
private void ServerValidation(object sender, CancelEventArgs e)
with this
private void ServerValidation(object sender, System.Web.UI.WebControls.
itolux, you come right there?
ASKER
Compiler Error Message: CS0122: 'TestValidation.ServerVali dation(obj ect, System.Web.UI.WebControls. ServerVali dateEventA rgs)' is inaccessible due to its protection level
Source Error:
Line 12:
Line 13: <asp:TextBox id="TextBox1" runat="server" />
Line 14: <asp:CustomValidator id="CustomValidator1"
Line 15: ControlToValidate="TextBox 1"
Line 16: ClientValidationFunction=" PasswordLe ngth"
Source Error:
Line 12:
Line 13: <asp:TextBox id="TextBox1" runat="server" />
Line 14: <asp:CustomValidator id="CustomValidator1"
Line 15: ControlToValidate="TextBox
Line 16: ClientValidationFunction="
make it friend instead of private.
ASKER
what do you mean?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It compiles now but does not do anything!
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox id="TextBox1" runat="server" />
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="TextBox1"
ClientValidationFunction="PasswordLength"
OnServerValidate="ServerValidation"
Display="Static"
ErrorMessage="Doofus!"
runat="server"/>
<br />
<asp:Button id="Button1" Text="Validate" runat="server"/>
</div>
</form>
</body>
</html>
<script type="text/javascript">
function PasswordLength(source, clientside_arguments)
{
if ((clientside_arguments.Value.Length < 3) || ((clientside_arguments.Value.Length > 10))) <-- //could be wrong as i have not done java scripts in a while
{
clientside_arguments.IsValid=true;
}
else
{
clientside_arguments.IsValid=false
};
}
</script>
public partial class TestValidation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void ServerValidation(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e)
{
if ((TextBox1.Text.Length < 3) || (TextBox1.Text.Length > 10))
{
//tell user he is a doofus
}
}
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Here you go
=======================================================================
Front code
=======================================================================
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox id="TextBox1" runat="server" />
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="TextBox1"
OnServerValidate="ServerValidation"
Display="Static"
ErrorMessage="Doofus!"
runat="server" ValidationGroup="Test"/>
<br />
<asp:Button id="Button1" Text="Validate" runat="server" ValidationGroup="Test"/>
</div>
<asp:ValidationSummary ID="ValidationSummary1"
ShowMessageBox="true" ValidationGroup = "Test"
ShowSummary="false"
HeaderText="You must enter a value in the following fields:"
EnableClientScript="true"
runat="server"/>
</form>
</body>
</html>
<script type="text/javascript">
function PasswordLength(source, clientside_arguments)
{
if ((clientside_arguments.Value.Length < 3) || ((clientside_arguments.Value.Length > 10))) <-- //could be wrong as i have not done java scripts in a while
{
clientside_arguments.IsValid=true;
}
else
{
clientside_arguments.IsValid=false
};
}
</script>
=======================================================================
Code behind
=======================================================================
public partial class TestValidation : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void ServerValidation(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e)
{
if ((TextBox1.Text.Length < 3) || (TextBox1.Text.Length > 10))
{
//tell user he is a doofus
}
}
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It seems like its working now - Only one more thing, when you do no enter anything, it does not show the error.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the help!