简体   繁体   中英

ASP/C# TextBox Validation

I need to create a webform where users can add, update, delete, retrieve customer data from a table in an SQL database.

Should have textboxes for each field in the table so that the users can enter details of the fields to update the table in the DB.

What im having trouble with is in the code behind the form i need to make a clear method to clear all the textboxes and the message label. I also need to set validation requirements for each textbox. But i am unsure how to do this properly.

The textboxes are;

CustID, Firstname, Surname, Gender, Age, Address1, Address2, City, Phone, Mobile, Email, Confirm Email.

Now my main question is, how do i validate the textboxes? For example; CustID is required. & Must be unique. Must be an integer and must be between 1 & 1000.

You should use RequiredValidator for example

http://www.w3schools.com/aspnet/control_reqfieldvalidator.asp

This will perform validation before submitting data to server ;)

There are also other type of validator, like RangeValidator (for the need to check if the integer is between 1 and 1000).

Example:

<asp:RangeValidator ControlToValidate="youtField" MinimumValue="1" MaximumValue="1000" Type="Integer" Text="The field must be between 1 and 1000" runat="server" />

You can also add a ValidationGroup="save" for example to all your validators and to the button that user should click to save and update data.

Asp.net Have some (5 main types) server validation control's , You can use the validations for your requirement

See this image for understanding validation controls (The image referred from )

在此处输入图片说明

More understanding by this MSDN sit3

and here is link for all validation control sample's : click me

To clear all textbox you can try something like this

foreach (var item in Page.Controls)
    {
        if (item is TextBox)
        {
            ((TextBox)item).Text = "";
        }
        if (item is DropDownList)
        {
            ((DropDownList)item).SelectedIndex= 0;
        }
        //and the other types
    }

For the part of validation you have to set the validation fields that you desire and bind it to the field directly on the .aspx page

<asp:textbox ID="Name" runat="server" TabIndex="1"/>
<asp:RequiredFieldValidator ID="rfvName" ControlToValidate="Name" runat="server" ErrorMessage="Name is required">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errors:" />

When you try to save and one of the condition of your validators returns false, the validation summary will show all the errors written in the errormessage attribute.

Here could be an example for ASP/ MVC - because you have forgotten to specify which technology from ASP. Forms or MVC ?!? This bellow aplies to mvc and the other attributes are allready defined by the users before me.

Note that the RemoteAttribute can verify a function (validation function) .

 namespace ModelValidation.Models {
 public class Appointment {
  [Required]
  [StringLength(10, MinimumLength = 3)]
  public string ClientName { get; set; }
  [DataType(DataType.Date)]
  [Remote("ValidateDate", "Home")]
  public DateTime Date { get; set; }
  public bool TermsAccepted { get; set; }
 }
}

To apply validation on a model property that describes a TextBox, then a good proactice is to use TextBoxFor<>(). Like that:

@Html.TextBoxFor((model) => model.ClientName )

You can clear all your controls values by either redirecting to user to another page telling him that form is submitted, New Registration button to redirect user again to Registration page, However if you don't want that you can pick up each control and reset them either in Cs.file or using javascript,

foreach (Control ctrl in form1.Controls)
        {
            if (ctrl is TextBox)
            {
                TextBox tb = (TextBox)ctrl;
                tb.Text = string.Empty;
            }
            else if (ctrl is DropDownList)
            {
                DropDownList dl = (DropDownList)ctrl;
                dl.SelectedIndex = 0;
            }
            else if (ctrl is CheckBox)
            {
                CheckBox cb = (CheckBox)ctrl;
                cb.Checked = false;
            }
        }

For your validation purpose i strongly suggest you to read about validation in Asp.net , here is a good tutorial you can learn from here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM