Solved

Range validatator HELP (String)

Posted on 2008-10-16
26
428 Views
Last Modified: 2013-12-17
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
0
Comment
Question by:introlux
  • 10
  • 10
  • 5
  • +1
26 Comments
 
LVL 13

Expert Comment

by:crazyman
Comment Utility
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.
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
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
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
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")]
0
 

Author Comment

by:introlux
Comment Utility
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
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
which framework 1, 2, 3, 3.5?
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
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
}
}
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
You could use a regular expression validator.
0
 
LVL 1

Accepted Solution

by:
MarkMyburgh earned 250 total points
Comment Utility
sorry don't know why i thought this was a windows app:
below is an example of how to validate using the customer validator

<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" 

           OnClick="ValidateBtn_OnClick" 

           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>

Open in new window

0
 

Author Comment

by:introlux
Comment Utility
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="TextBox1"
Line 16:            ClientValidationFunction="PasswordLength"
 
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
ServerValidation is the function which would be executed on the server when validating. Create this procedure in the codebehind on the server.
0
 

Author Comment

by:introlux
Comment Utility
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))
 
0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 250 total points
Comment Utility
This is what you need
System.Web.UI.WebControls.ServerValidateEventArgs
0
 

Author Comment

by:introlux
Comment Utility
Compiler Error Message: CS0138: A using namespace directive can only be applied to namespaces; 'System.Web.UI.WebControls.ServerValidateEventArgs' 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.ServerValidateEventArgs;
Line 12:
Line 13: public partial class TestValidation : System.Web.UI.Page
 
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
Mate, just replace this
private void ServerValidation(object sender, CancelEventArgs e)
with this
private void ServerValidation(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e)
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
itolux, you come right there?
0
 

Author Comment

by:introlux
Comment Utility
Compiler Error Message: CS0122: 'TestValidation.ServerValidation(object, System.Web.UI.WebControls.ServerValidateEventArgs)' 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="TextBox1"
Line 16:            ClientValidationFunction="PasswordLength"
 
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
make it friend instead of private.
0
 

Author Comment

by:introlux
Comment Utility
what do you mean?
0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 250 total points
Comment Utility
change this
private void ServerValidation(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e)
to this
public void ServerValidation(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e)

if it still does not help, upload your full code here.
0
 

Author Comment

by:introlux
Comment Utility
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 

        }

    } 

}

Open in new window

0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 250 total points
Comment Utility
remove this attribute
ClientValidationFunction="PasswordLength"


add a validation summary control to the website and configure it properly. What code have you written in the code behind? Post that code as well.
0
 

Author Comment

by:introlux
Comment Utility
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 

        }

    } 

}

Open in new window

0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 250 total points
Comment Utility
Replace
 //tell user he is a doofus
with
e.IsValid=False;
0
 

Author Comment

by:introlux
Comment Utility
It seems like its working now - Only one more thing, when you do no enter anything, it does not show the error.
0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 250 total points
Comment Utility
Set ValidateEmptyText to true.
0
 

Author Closing Comment

by:introlux
Comment Utility
Thanks for the help!
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now