Thursday, March 30, 2017

ஏ.எஸ்.பி.நெட்டில் வாலிடேசன் கன்ட்ரோல்கள்.




நிகழ் நேர நிரலாக்கத்திற்கு நாம் மாறிய பிறகு நாம் ஒரு வெப் ஃபார்மை சப்மிட் செய்யும் முன் நாம் கொடுக்கும் இன்புட்(ஊள்ளீடு) ஆனதை பரிசோதிக்க வேண்டும்.உதாரணத்திற்கு ஒரு வெப் சைட்டில் லாக் இன் செய்கின்றோம். அப்போது சர்வரானது நாம் கொடுக்கும் யூசர் நேம், பாஸ்வேர்ட் ஆகியவற்றை டேட்டா பேஸில் சோதனை செய்த பிறகே நாம் உள்ளே செல்ல அனுமதிக்கும்.ஆனால் அதற்கு முன் நாம் கொடுக்கும் இன்புட் சரியான வகையில் உள்ளதா எனப் பரிசோதிக்க வேண்டும்.
இரண்டு முறையில் நாம் டேட்டாவினை பரிசோதிக்கலாம்.ஒன்று கிளையண்ட் சைட் அல்லது சர்வரில் சர்வர் சைட் .கிளயண்ட் சைட் என்பது ஜாவா ஸ்கிரிப்ட் மூலம் ப்ரௌசர் சோதிக்கலாம். ஆனால் ப்ரௌசரில் பயனர் ஜாவா ஸ்கிரிப்டை டிஸேபில் செய்திருக்கலாம். சர்வர் சைட் பரிசோதித்தால் சர்வர் சைட் லோட் அதிகம் ஆகும். மேலும் மைக்ரோசாஃப்ட் சர்வர் சைட் பரிசோதித்து வெளியீடு செய்யும் செய்திகள் பயனருக்கு புரியாது.இதைப்பற்றி ஒரு நகைச்சுவை துனுக்கு ஒன்று உள்ளது. அதாவது ஒருவர் தான் நிறைய எழுதி சம்பாதிக்கலாம் எனவும் அதே நேரம் தான் எழுதுவை பிறருக்கு புரியக் கூடாது எனவும் ஆசைப்பட்டார். அவர் கனவு நிறைவேறியது.ஆம் அவருக்கு மைக்ரோசாஃப்டில் எர்ரர் மெசேஸ் எழுதும் வேலை கிடைத்தது.அது தான் அந்த நகைச்சுவை துணுக்கு.
வாலிடேசன் கன்ட்ரோல்கள் கிளையண்ட் சைட் மற்றும் சர்வர் சைட் ஆகிய இரு பக்கங்களிலும் உள்ளீட்டை பரிசோதிக்கின்றது. மேலும் நிரலாரரால் புரியும் படி எழுதப் பட்ட செய்திகளை இது பிழைச் செய்தியாக அறிவிக்கின்றது.
மொத்தம் ஆறு வகையான வாலிடேசன் கன்ட்ரோல்கள் உள்ளன அவையாவன
1.   RequiredFieldValidator-டெக்ஸ்ட் பாக்ஸ் போன்றவற்றில் நாம் கட்டாயம் உள்ளீடு கொடுக்க வேண்டுவதற்கு இது பயன்படுகின்றது.
2.   RangeValidator-இது நாம் கொடுக்கும் உள்ளீடு ஒரு குறிப்பிட்ட வரையறைக்குள் இருக்குமாறு செய்வதற்கு பயன்படுகின்றது.
3.   CompareValidator-இரு உள்ளீடுகள் ஒரே மாதிரியாக உள்ளதா அல்லது ஒரு உள்ளீடு ஆனது ஒரு குறிப்பிட்ட டேட்டா டைப்பை சார்ந்ததா என பரிசோதிக்க பயன்படுகின்றது
4.   RegularExpressionValidator-ஒரு உள்ளீடு ஆனது ஒரு குறிப்பியடப் பட்ட தகவமைப்பை கொண்டுள்ளதா என பரிசோதிக்க பயன் படுகின்றது.
5.   CustomValidator- நிரலாளரால் உள்ளீட்டின் தேவைக்கேற்ப அவர் விரும்பிய  வகையில் கோடிங் மூலம் பரிசோதிக்க பயன்படுகின்றது.
6.   ValidationSummary-இது அந்த பக்கத்தில் என்னென்ன பிழைகள் உள்ளதோ அதை தொகுத்து அறிவிக்கின்றது.
RequiredFieldValidator.
உள்ளீட்டில் நாம் கட்டாயம் உள்ளீடு கொடுக்க வேண்டுவதற்கு இது பயன்படுகின்றது.
webform1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication4.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblUserName" AssociatedControlID ="txtUserName" Text ="User Name"  runat="server"></asp:Label>

    <asp:TextBox ID="txtUserName" runat ="server" ></asp:TextBox>
       <asp:RequiredFieldValidator ID="reqUserName" ControlToValidate ="txtUserName" Text ="error Enter userName" Display ="Dynamic" runat ="server"></asp:RequiredFieldValidator>
        <asp:Label ID="lblPassword" AssociatedControlID ="txtPassword" Text ="Password" runat ="server"></asp:Label>
        <asp:TextBox ID="txtPassword" runat ="server" TextMode="Password"></asp:TextBox>
        <br /><br />
        <asp:Button ID="submit" Text ="submit" OnClick="submit_Click" runat ="server" />
        <asp:RequiredFieldValidator ID="reqPassword" ControlToValidate ="txtPassword" Text="Error Enter :Password" Display ="Static" runat ="server"></asp:RequiredFieldValidator>

    </div>
    </form>
</body>
</html>
Webform1.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm1 : System.Web.UI.Page
    {
     

        protected void submit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("NewPage.aspx");
            }
        }
    }
}
ControlToValidate என்கின்ற பண்பானது எந்த கன்ட்ரோலை நாம் பரிசோதிகின்றோம் என்பதைக் குறிக்கின்றது. Display எங்கின்ற பண்பானது மூன்று வகையான உள்ளீட்டு சாத்தியங்களைக் கொண்டுள்ளது.அவையாவன static,dynamic,none ஆகும். Static என்பது நிலையான இடத்தை அது கொண்டிருக்க வேண்டும் என்பதைக் குறிக்கின்றது. Dynamic என்பது பிழை ஏற்படும் பொழுது அதை அறிவிக்க இடம் ஒதுக்கீடு செய்ய பயன்படுகின்றது. None என்பது பிழைச் செய்தியானது காண்பிக்கப் படாது என்பதைக் குறிப்பிட பயன்படுகின்றது.ValidatatorSummary எங்கின்ற கருவியை நாம் பயன்படுத்தும் பொழுது none பயன்படுகின்றது.
டெக்ஸ்ட் பண்பானது என்ன பிழைச் செய்தி வெளியிட வேண்டும் என்பதைக் குறிக்கின்றது. ஒரு பக்கத்தில் எந்த வித பிழையும் இல்லையென்றால் அது IsValid என்கின்ற பண்பானது true என்பதை ரிடர்ன் செய்கின்றது. பார்க்க படம் 1
படம் 1

CompareValidator.
இது இருவகைகளில் பயன்படுகின்றது. முதலாவதாக இரு உள்ளீடுகளும் ஒரே மாதிரியாக உள்ளதா என்பதை பரிசொதிக்க பயன் படுகின்றது..உதாரணமாக Enter password என்கின்ற உள்ளீடும் Confirm password எங்கின்ற உள்ளீடும் ஒரே மதிப்பைக் கொண்டுள்ளதா என பரிசோதிக்க பயன்படுகின்றது.
Webform2.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication4.WebForm2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    Enter old password:<asp:TextBox ID="txtOldPassword" runat ="server" TextMode="Password"></asp:TextBox>
        <br /><br />
        Enter new password:<asp:TextBox ID="txtNewPassword" runat="server" TextMode="Password"></asp:TextBox>
        <br /><br />
        Confirm old password:<asp:TextBox ID="txtConNewPassword" runat ="server" TextMode="Password" ></asp:TextBox>
        <br /><br />
        <asp:CompareValidator ID="cmpPassword" ControlToValidate ="txtConNewPassword" ControlToCompare ="txtNewPassword" Display ="Static" Operator ="Equal" Text="Error: Passwords do not match" runat ="server" ></asp:CompareValidator>
        <asp:Button id="Submit" Text="Submit" OnClick ="Submit_Click" runat ="server" />
    </div>
    </form>
</body>
</html>
Webform2.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Submit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("NewPage.aspx");
            }
               
        }
    }
}
பார்க்க படம்-2

படம் 2
இரண்டாவதாக ஒரு உள்ளீடானது ஒரு குறிப்பிட்ட தரவினத்திச் சேந்துள்ளதா என பரிசோதிக்க பயன்படுகின்றது.உதாரணத்திற்கு date of birth எங்கின்ற உள்ளீடு date வகையை சேந்துள்ளதா எனப் பரிசோதிக்க பயன்படுகின்றது.


Webform3.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication4.WebForm3" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        Enter your date of birth
        <asp:TextBox ID="txtBirthDate" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="cmpBirthDate" runat="server" ControlToValidate="txtBirthDate" Display="Dynamic" ErrorMessage="CompareValidator" Operator="DataTypeCheck" Type="Date">Invalid birth date</asp:CompareValidator>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
       
   
    </div>
    </form>
</body>
</html>
Webform3.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm3 : System.Web.UI.Page
    {
       

        protected void Button1_Click(object sender, EventArgs e)
        {
            if(Page.IsValid )
            {
                Response .Redirect ("NewPage.aspx");
            }
        }
    }
}
பார்க்க படம்-3

படம் 3
RangeValidator.
இந்த டூலானது உள்ளீடானது ஒரு குறிப்பிட்ட தகவரைக்குள் உள்ளதா எனப்பரிசோதிக்கப் பயன்படுகின்றது.இதற்கு முக்கியமாக MaximumValue, MinimumValue என்று இரு பண்புகள் உள்ளது. உள்ளீடு ஆனது ஒந்த இரண்டு மதிப்புகளுக்குள் இருக்க வேண்டும். மேலும் type எங்கின்ற பண்பில் எந்த வகையான டேட்டா என்பதையும் குறிப்பிட வேண்டும்.
WebForm4.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="WebApplication4.WebForm4" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        Select item:<asp:DropDownList ID="DropDownList1" runat="server" Width="133px">
            <asp:ListItem>flour</asp:ListItem>
            <asp:ListItem>rice</asp:ListItem>
            <asp:ListItem>wheat</asp:ListItem>
            <asp:ListItem>sugar</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
        Enter quantity<asp:TextBox ID="txtQty" runat="server"></asp:TextBox>
        <asp:RangeValidator ID="rngQty" runat="server" ControlToValidate="txtQty" ErrorMessage="RangeValidator" MaximumValue="100" MinimumValue="10" Type="Integer">Error:quantity should be between 10 and 100</asp:RangeValidator>
        <br />
        <br />
        <asp:Button ID="submit" runat="server" OnClick="submit_Click" Text="submit" />
   
    </div>
    </form>
</body>
</html>
Webform4.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm4 : System.Web.UI.Page
    {
       

       
        protected void submit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("NewPage.aspx");
            }
        }
    }
}
பார்க்க படம்-4




படம் 4
RegularExpressionValidator.
இந்த டூலானது உள்ளீடு ஒரு குறிப்பிட்ட தகவமைப்பை கொன்டுள்ளதா எனப் பரிசோதிக்கப் பயன்படுகின்றது. உதாரணத்திற்கு email id,url போன்றவற்றை அதன் கட்டமைப்பை பரிசோதிக்க பயன்படுகின்றது.
WebForm5.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm5.aspx.cs" Inherits="WebApplication4.WebForm5" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        Enter your Email id:
        <asp:TextBox ID="txtEmailId" runat="server"></asp:TextBox>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmailId" ErrorMessage="regEmailId" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">invalid email id</asp:RegularExpressionValidator>
        <br />
        <br />
        <asp:Button ID="submit" runat="server" OnClick="submit_Click" Text="submit" />
   
    </div>
    </form>
</body>
</html>
Webform5.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm5 : System.Web.UI.Page
    {
       

        protected void submit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("NewPage.aspx");
            }
        }
    }
}
படம் 5



பார்க்க படம் 5
CustomValidator.
 இந்த டூலானது நிரலாளர் தன் விருப்பத்தற்கேற்ப கோடிங் மூலம் பரிசொதிக்க பயன்படுகின்றது. உதாரணத்திற்கு ஒரு உள்ளீட்டின் length ஆனது சரியாக எட்டு எண்ணிக்கையில் உள்ளதா என பரிசோதிக்கப் பயன்படுகின்றது.
Webform6.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm7.aspx.cs" Inherits="WebApplication4.WebForm7" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
       Custom text:<br />
<asp:TextBox runat="server" id="txtCustom" />
<asp:CustomValidator runat="server" id="cusCustom" controltovalidate="txtCustom" onservervalidate="cusCustom_ServerValidate" errormessage="The text must be exactly 8 characters long!" />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br /><br />
    </div>
    </form>
</body>
</html>
Webform6.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm7 : System.Web.UI.Page
    {
       
      

        protected void cusCustom_ServerValidate(object sender, ServerValidateEventArgs e)
        {
            if (e.Value.Length == 8)
                e.IsValid = true;
            else
                e.IsValid = false;
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("Newpage.aspx");
            }
        }
       

     
       
    }
}
படம் 6

பார்க்க படம் 6
ValidationSummary.
இந்த டூலானது இணையப் பக்கத்தில் என்னென்ன பிழைகள் உள்ளதோ அவற்றை மொத்தமாக காண்பிக்கின்றது.மற்ற வாலிடேசன் கன்ட்ரோலின் display பண்பானது none என கொடுக்கவும்.
Webform7.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx.cs" Inherits="WebApplication4.WebForm6" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <fieldset>
        <legend>product order form
        </legend>
        <asp:Label ID="lblProductName" Text="Product Name" AssociatedControlID ="txtProductName" runat="server"></asp:Label>
        <br />
        <asp:TextBox ID="txtProductName" runat ="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="reqProductName" ControlToValidate ="txtProductName" runat ="server" Display="None" ErrorMessage="(Product Name Required)"></asp:RequiredFieldValidator>
       
         <br /><br />
        <asp:Label ID="lblProductPrice" Text="Product Price" AssociatedControlID ="txtProductPrice" runat ="server"></asp:Label>
        <br />
        <asp:TextBox ID="txtProductPrice" Columns ="5" runat ="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="reqProductPrice" ControlToValidate ="txtProductPrice" Display ="None" runat="server" ErrorMessage="(product price required)"></asp:RequiredFieldValidator>
        <asp:CompareValidator ID="cmpProductPrice" ControlToValidate ="txtProductPrice" Operator ="DataTypeCheck" Type ="Currency" runat ="server" Display="None" ErrorMessage="(Invalid price)" ></asp:CompareValidator>
        <br /><br />
        <asp:Label ID="lblProductQuantity" Text ="Product quantity" AssociatedControlID ="txtProductQuantity" runat ="server"></asp:Label>
        <br />
        <asp:TextBox ID="txtProductquantity" Columns ="5" runat ="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="reqProductQuantity" ControlToValidate ="txtProductQuantity" Display="None" runat ="server" ErrorMessage="(Quantity required)"></asp:RequiredFieldValidator>
        <asp:CompareValidator ID="cmpProductQuantity" ControlToValidate ="txtProductQuantity" Operator ="DataTypeCheck" Type ="Integer" runat ="server" Display="None" ErrorMessage="(invalid quantity)" ></asp:CompareValidator>
        <br /><br />
        <asp:Button ID="btnSubmit" Text ="Submit Product Order" OnClick="btnSubmit_Click" runat ="server" />
         
   
        <br />
        <br />
        <asp:ValidationSummary ID="valctrl1" runat="server" BackColor="Yellow" BorderColor="Red" BorderStyle="Solid" ForeColor="Black" HeaderText="Error" ShowMessageBox="false" ShowModelStateErrors="true" ShowSummary="true" />
         
   
    </fieldset>
        </div>
    </form>
</body>
</html>
  Webform7.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm6 : System.Web.UI.Page
    {
     
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Response.Redirect("Newpage.aspx");
            }
        }
    }
}





பார்க்க படம்-7
இவ்வாறு ஏஎஸ்பி.நெட்டில் validation controls உள்ளீட்டை பரிசோதிக்க பயன்படுகின்றது.

                                              -முத்து கார்த்திகேயன்,மதுரை.
ads Udanz