common.skill

ভ্যালিডেশন এবং এন্ট্রি কন্ট্রোল (Validation and Input Controls)

Microsoft Technologies - এএসপি ডট নেট ওয়েব (ASP.Net WP)
202
202

ASP.NET Web Forms এ ভ্যালিডেশন কন্ট্রোল এবং এন্ট্রি কন্ট্রোল ব্যবহৃত হয় ব্যবহারকারীর ইনপুট যাচাই এবং নিরাপদভাবে ডেটা গ্রহণ করার জন্য। ভ্যালিডেশন কন্ট্রোলগুলো client-side এবং server-side validation করতে সহায়তা করে, যা ওয়েব অ্যাপ্লিকেশনকে আরো নিরাপদ এবং ব্যবহারকারী বান্ধব করে তোলে।


ভ্যালিডেশন কন্ট্রোলস (Validation Controls)

ASP.NET Web Forms এ বিভিন্ন ধরনের ভ্যালিডেশন কন্ট্রোল রয়েছে, যা ডেভেলপারদের সহজে ইনপুট যাচাই করতে সাহায্য করে। এগুলি সাধারণত input controls এর সাথে সংযুক্ত থাকে এবং ইউজার যদি ভুল ইনপুট দেয়, তাহলে তা শোকজ বা error message দেখায়।

বিভিন্ন ধরনের ভ্যালিডেশন কন্ট্রোলস:

  1. RequiredFieldValidator (Required Field Validator)
    এই কন্ট্রোলটি ব্যবহার করা হয় যখন ইউজার একটি ফিল্ডে ইনপুট প্রদান করা বাধ্যতামূলক। যদি ফিল্ডটি ফাঁকা থাকে, তাহলে একটি ত্রুটি বার্তা প্রদর্শিত হবে।

    ব্যবহার:

    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator 
        ID="rfvName" 
        runat="server" 
        ControlToValidate="txtName" 
        ErrorMessage="Name is required" 
        ForeColor="Red"></asp:RequiredFieldValidator>
    
  2. RangeValidator (Range Validator)
    এই কন্ট্রোলটি নির্দিষ্ট মানের পরিসরের মধ্যে ইনপুট যাচাই করতে ব্যবহৃত হয়। এটি সাধারণত numeric values বা dates এর জন্য ব্যবহার করা হয়।

    ব্যবহার:

    <asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
    <asp:RangeValidator 
        ID="rvAge" 
        runat="server" 
        ControlToValidate="txtAge" 
        MinimumValue="18" 
        MaximumValue="100" 
        Type="Integer" 
        ErrorMessage="Age must be between 18 and 100" 
        ForeColor="Red"></asp:RangeValidator>
    
  3. CompareValidator (Compare Validator)
    এই কন্ট্রোলটি দুটি ইনপুট ফিল্ডের মান তুলনা করতে ব্যবহৃত হয়। এটি সাধারণত password confirmation এর জন্য ব্যবহার হয়, যেখানে প্রথম ইনপুট ফিল্ডের মান দ্বিতীয় ফিল্ডের মানের সাথে তুলনা করা হয়।

    ব্যবহার:

    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
    <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
    <asp:CompareValidator 
        ID="cvPassword" 
        runat="server" 
        ControlToValidate="txtConfirmPassword" 
        ControlToCompare="txtPassword" 
        ErrorMessage="Passwords do not match" 
        ForeColor="Red"></asp:CompareValidator>
    
  4. RegularExpressionValidator (Regular Expression Validator)
    এই কন্ট্রোলটি ইনপুট যাচাই করতে regular expressions ব্যবহার করে। এটি সাধারণত email, phone numbers বা অন্যান্য বিশেষ ফরম্যাটের জন্য ব্যবহৃত হয়।

    ব্যবহার:

    <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
    <asp:RegularExpressionValidator 
        ID="revEmail" 
        runat="server" 
        ControlToValidate="txtEmail" 
        ValidationExpression="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$" 
        ErrorMessage="Invalid email format" 
        ForeColor="Red"></asp:RegularExpressionValidator>
    
  5. CustomValidator (Custom Validator)
    এই কন্ট্রোলটি কাস্টম ভ্যালিডেশন ফাংশন ব্যবহার করে ইনপুট যাচাই করতে ব্যবহৃত হয়। আপনি server-side বা client-side স্ক্রিপ্ট ব্যবহার করে কাস্টম ভ্যালিডেশন যুক্ত করতে পারেন।

    ব্যবহার:

    <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
    <asp:CustomValidator 
        ID="cvUsername" 
        runat="server" 
        ControlToValidate="txtUsername" 
        OnServerValidate="ValidateUsername" 
        ErrorMessage="Invalid username" 
        ForeColor="Red"></asp:CustomValidator>
    

    C# কোড (Server-side):

    protected void ValidateUsername(object source, ServerValidateEventArgs args)
    {
        if (args.Value == "admin")
            args.IsValid = false;
        else
            args.IsValid = true;
    }
    
  6. ValidationSummary (Validation Summary)
    এই কন্ট্রোলটি সমস্ত ভ্যালিডেশন ত্রুটি একত্রিত করে দেখায়। এটি ফর্মের সমস্ত ভ্যালিডেশন কন্ট্রোলের জন্য একত্রে ত্রুটি বার্তা প্রদর্শন করে।

    ব্যবহার:

    <asp:ValidationSummary ID="vsSummary" runat="server" 
        HeaderText="Please fix the following errors:" 
        ForeColor="Red" />
    

এন্ট্রি কন্ট্রোলস (Input Controls)

এন্ট্রি কন্ট্রোলস ব্যবহারকারীর ইনপুট গ্রহণ করতে ব্যবহৃত হয়। ASP.NET Web Forms এ বিভিন্ন ধরনের এন্ট্রি কন্ট্রোল রয়েছে, যেমন TextBox, DropDownList, RadioButtonList ইত্যাদি।

কিছু গুরুত্বপূর্ণ ইনপুট কন্ট্রোলস:

  1. TextBox (টেক্সটবক্স)
    ব্যবহারকারীর টেক্সট ইনপুট গ্রহণ করার জন্য এই কন্ট্রোল ব্যবহৃত হয়। এটি সাধারণত নাম, ইমেইল বা অন্যান্য টেক্সটভিত্তিক ডেটা ইনপুটের জন্য ব্যবহৃত হয়।

    ব্যবহার:

    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    
  2. DropDownList (ড্রপডাউন লিস্ট)
    এই কন্ট্রোলটি ব্যবহারকারীর কাছ থেকে পূর্বনির্ধারিত অপশন নির্বাচন করতে সহায়তা করে। এটি একটি ড্রপডাউন মেনু তৈরি করে, যেখানে ব্যবহারকারী একটি নির্দিষ্ট অপশন নির্বাচন করতে পারেন।

    ব্যবহার:

    <asp:DropDownList ID="ddlCountry" runat="server">
        <asp:ListItem Value="1">USA</asp:ListItem>
        <asp:ListItem Value="2">India</asp:ListItem>
        <asp:ListItem Value="3">UK</asp:ListItem>
    </asp:DropDownList>
    
  3. RadioButtonList (রেডিও বাটন লিস্ট)
    এই কন্ট্রোলটি একাধিক অপশনের মধ্যে একটি অপশন নির্বাচন করতে ব্যবহৃত হয়। এটি রেডিও বাটনের একটি লিস্ট তৈরি করে।

    ব্যবহার:

    <asp:RadioButtonList ID="rblGender" runat="server">
        <asp:ListItem Value="M">Male</asp:ListItem>
        <asp:ListItem Value="F">Female</asp:ListItem>
    </asp:RadioButtonList>
    
  4. CheckBoxList (চেকবক্স লিস্ট)
    এই কন্ট্রোলটি একাধিক অপশন থেকে এক বা একাধিক অপশন নির্বাচন করতে ব্যবহৃত হয়।

    ব্যবহার:

    <asp:CheckBoxList ID="cblHobbies" runat="server">
        <asp:ListItem Value="Reading">Reading</asp:ListItem>
        <asp:ListItem Value="Traveling">Traveling</asp:ListItem>
        <asp:ListItem Value="Swimming">Swimming</asp:ListItem>
    </asp:CheckBoxList>
    

সারাংশ

ASP.NET Web Forms এ ভ্যালিডেশন কন্ট্রোলস ব্যবহার করে আপনি ইউজারের ইনপুট যাচাই করতে পারেন, যা ওয়েব অ্যাপ্লিকেশনকে নিরাপদ এবং ব্যবহারকারী বান্ধব করে তোলে। RequiredFieldValidator, RangeValidator, CompareValidator ইত্যাদি বিভিন্ন ভ্যালিডেশন কন্ট্রোল রয়েছে, যেগুলি ইনপুট ফিল্ডের যাচাই করার জন্য ব্যবহার করা হয়। Input Controls যেমন TextBox, DropDownList, এবং RadioButtonList ব্যবহারকারীর ইনপুট গ্রহণ করতে ব্যবহৃত হয়, যা ডেভেলপারদের কার্যকরী এবং ইন্টারেকটিভ ওয়েব ফর্ম তৈরি করতে সহায়তা করে।

common.content_added_by

Built-in Validation Controls (RequiredFieldValidator, CompareValidator, ইত্যাদি)

243
243

ASP.NET Web Forms এ validation controls ডেভেলপারদের সহজে এবং দ্রুত ডেটা যাচাই করার সুবিধা প্রদান করে। এই কন্ট্রোলগুলো ব্যবহারকারী থেকে প্রাপ্ত ইনপুট ডেটার বৈধতা নিশ্চিত করতে সহায়তা করে। ASP.NET এর built-in validation controls যেমন RequiredFieldValidator, CompareValidator, RangeValidator, RegularExpressionValidator, CustomValidator, এবং ValidationSummary ডেভেলপারদের ওয়েব ফর্মের ইনপুট ক্ষেত্রগুলোর জন্য স্বয়ংক্রিয়ভাবে যাচাই করার সক্ষমতা দেয়।

এই কন্ট্রোলগুলো server-side validation বা client-side validation দুটোই করতে পারে, যার ফলে ইউজার ইন্টারফেসে ত্রুটি বা ভুল ইনপুটের জন্য দ্রুত প্রতিক্রিয়া পাওয়া যায়।


1. RequiredFieldValidator

RequiredFieldValidator কন্ট্রোল ব্যবহার করা হয় একটি নির্দিষ্ট ইনপুট ক্ষেত্রের জন্য ব্যবহারকারীকে তথ্য প্রদান করতে বাধ্য করার জন্য। এটি নিশ্চিত করে যে, ফর্মের একটি নির্দিষ্ট ফিল্ড খালি না থাকে এবং সেই ফিল্ডে কোনো মান প্রদান করা হয়েছে।

উদাহরণ:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator 
    ID="rfvName" 
    runat="server" 
    ControlToValidate="txtName" 
    ErrorMessage="Name is required" 
    ForeColor="Red" />

এখানে RequiredFieldValidator কন্ট্রোলটি txtName নামক টেক্সটবক্সের জন্য ইনপুট যাচাই করছে এবং যদি ইনপুট ফিল্ড খালি থাকে, তবে "Name is required" মেসেজটি দেখাবে।


2. CompareValidator

CompareValidator কন্ট্রোলটি ব্যবহার করা হয় দুটি মানের মধ্যে তুলনা করার জন্য। এটি ControlToValidate এর মান অন্য একটি কন্ট্রোলের মানের সাথে তুলনা করে এবং ফলস হলে ত্রুটি মেসেজ প্রদর্শন করে।

উদাহরণ:

<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator 
    ID="cvPassword" 
    runat="server" 
    ControlToValidate="txtConfirmPassword" 
    ControlToCompare="txtPassword" 
    ErrorMessage="Passwords do not match" 
    ForeColor="Red" />

এখানে, CompareValidator কন্ট্রোলটি txtPassword এবং txtConfirmPassword টেক্সটবক্সের মান তুলনা করবে। যদি পাসওয়ার্ড দুটি এক না হয়, তবে "Passwords do not match" ত্রুটি মেসেজ দেখাবে।


3. RangeValidator

RangeValidator কন্ট্রোলটি ব্যবহার করা হয় একটি মানের মধ্যে সীমানা নির্ধারণ করার জন্য। এটি একটি নির্দিষ্ট মানের মধ্যে ইনপুট যাচাই করে, যেমন সংখ্যা, তারিখ ইত্যাদি। এটি ব্যবহারকারীর ইনপুটকে একটি নির্দিষ্ট সীমার মধ্যে রাখতে সহায়তা করে।

উদাহরণ:

<asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
<asp:RangeValidator 
    ID="rvAge" 
    runat="server" 
    ControlToValidate="txtAge" 
    MinimumValue="18" 
    MaximumValue="100" 
    Type="Integer" 
    ErrorMessage="Age must be between 18 and 100" 
    ForeColor="Red" />

এখানে, RangeValidator কন্ট্রোলটি txtAge টেক্সটবক্সের মান 18 থেকে 100 এর মধ্যে থাকতে হবে তা যাচাই করছে। যদি ব্যবহারকারী 18 এর কম অথবা 100 এর বেশি বয়স প্রদান করেন, তাহলে "Age must be between 18 and 100" মেসেজটি প্রদর্শিত হবে।


4. RegularExpressionValidator

RegularExpressionValidator কন্ট্রোলটি একটি ইনপুট ফিল্ডের মানকে একটি নির্দিষ্ট regular expression এর সাথে তুলনা করে যাচাই করে। এটি সাধারণত ইমেইল, ফোন নম্বর, পিন কোড ইত্যাদি যাচাই করতে ব্যবহৃত হয়।

উদাহরণ:

<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator 
    ID="revEmail" 
    runat="server" 
    ControlToValidate="txtEmail" 
    ValidationExpression="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" 
    ErrorMessage="Please enter a valid email address" 
    ForeColor="Red" />

এখানে, RegularExpressionValidator কন্ট্রোলটি txtEmail ইনপুটের মানকে একটি ইমেইল ঠিকানার নিয়মের সাথে যাচাই করে। যদি এটি সঠিক ইমেইল ঠিকানা না হয়, তাহলে "Please enter a valid email address" ত্রুটি মেসেজটি দেখাবে।


5. CustomValidator

CustomValidator কন্ট্রোলটি কাস্টম কোড ব্যবহার করে ইনপুট যাচাই করতে ব্যবহৃত হয়। এটি যখন ডেভেলপারকে নির্দিষ্ট কাস্টম লজিকের ভিত্তিতে ভ্যালিডেশন করতে হয়, তখন ব্যবহার করা হয়।

উদাহরণ:

<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<asp:CustomValidator 
    ID="cvUsername" 
    runat="server" 
    ControlToValidate="txtUsername" 
    OnServerValidate="ValidateUsername" 
    ErrorMessage="Username must start with a letter" 
    ForeColor="Red" />

এখানে, CustomValidator কন্ট্রোলটি txtUsername ইনপুট ফিল্ডে কাস্টম লজিক প্রয়োগ করছে। OnServerValidate ইভেন্টে ValidateUsername মেথড কল হবে, যা যাচাই করবে যে, ইউজারনেমটি একটি অক্ষর দিয়ে শুরু হচ্ছে কি না।

CodeBehind Example:

protected void ValidateUsername(object source, ServerValidateEventArgs args)
{
    if (Char.IsLetter(args.Value[0]))
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
}

6. ValidationSummary

ValidationSummary কন্ট্রোলটি সব ধরনের ভ্যালিডেশন ত্রুটি একত্রে দেখানোর জন্য ব্যবহৃত হয়। এটি সাধারণত ফর্মের উপরে বা নিচে সমস্ত ত্রুটি মেসেজ সমন্বিত করে প্রদর্শন করা হয়।

উদাহরণ:

<asp:ValidationSummary 
    ID="vsSummary" 
    runat="server" 
    ForeColor="Red" 
    HeaderText="Please fix the following errors:" />

এখানে, ValidationSummary কন্ট্রোলটি সব ভ্যালিডেশন কন্ট্রোলের ত্রুটি মেসেজ একত্রে প্রদর্শন করবে।


Built-in Validation Controls এর সুবিধা

  • Easier Client-Side and Server-Side Validation: Validation Controls সহজেই ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড ভ্যালিডেশন প্রদান করে।
  • User-friendly Error Messages: কাস্টম এবং স্পষ্ট ত্রুটি মেসেজ প্রদর্শন করা যায়।
  • Reduced Coding: ভ্যালিডেশন কোড লিখতে খুব কম সময় এবং প্রচেষ্টা লাগে, কারণ ASP.NET ডেভেলপারদের জন্য বিল্ট-ইন ভ্যালিডেশন কন্ট্রোল সরবরাহ করে।
  • Comprehensive Validation: সংখ্যা, তারিখ, ইমেইল, পাসওয়ার্ড ইত্যাদির জন্য পৃথক ভ্যালিডেশন কন্ট্রোল আছে।

এইভাবে, ASP.NET Web Forms এর Built-in Validation Controls ডেভেলপারদের সহজে ইনপুট যাচাই করতে সহায়তা করে, যা নিরাপত্তা এবং ইউজার এক্সপিরিয়েন্সের জন্য অত্যন্ত গুরুত্বপূর্ণ।

common.content_added_by

CustomValidator তৈরি এবং ব্যবহার

218
218

ASP.NET Web Forms এ CustomValidator একটি অত্যন্ত শক্তিশালী কন্ট্রোল, যা ডেভেলপারদের কাস্টম ভ্যালিডেশন কার্য সম্পাদন করতে সক্ষম করে। সাধারণত, ASP.NET এ কিছু পূর্বনির্ধারিত ভ্যালিডেশন কন্ট্রোল যেমন RequiredFieldValidator, RangeValidator ইত্যাদি ব্যবহৃত হয়, তবে CustomValidator কন্ট্রোল ব্যবহারের মাধ্যমে ডেভেলপাররা তাদের প্রয়োজন অনুসারে ভ্যালিডেশন কাস্টমাইজ করতে পারেন।


CustomValidator কন্ট্রোলের কাজ

CustomValidator কন্ট্রোল ইউজারের ইনপুটের উপর নির্দিষ্ট শর্ত বা শর্তাবলী প্রয়োগ করতে ব্যবহৃত হয়। এটি সাধারণত client-side এবং server-side উভয় ভ্যালিডেশন এর জন্য ব্যবহার করা যেতে পারে। ডেভেলপাররা Validate() মেথডের মাধ্যমে কাস্টম ভ্যালিডেশন তৈরি করতে পারেন, যা ব্যবহারকারীর ইনপুট যাচাই করে।


CustomValidator তৈরি করার পদক্ষেপ

  1. CustomValidator কন্ট্রোল যুক্ত করা: ASP.NET ওয়েব পেজে CustomValidator কন্ট্রোল যুক্ত করতে হবে এবং এর মধ্যে ControlToValidate প্রপার্টি ব্যবহার করে কোন কন্ট্রোলের ইনপুট যাচাই করা হবে তা নির্ধারণ করতে হবে।
  2. Client-side Validation:
    Client-side ভ্যালিডেশন JavaScript দিয়ে করা যায়। CustomValidator কন্ট্রোলের ClientValidationFunction প্রপার্টি সেট করে JavaScript ফাংশন ব্যবহার করা হয়।
  3. Server-side Validation:
    Server-side ভ্যালিডেশন OnServerValidate ইভেন্ট হ্যান্ডলার ব্যবহার করে করা হয়, যা সার্ভারে ইনপুট যাচাই করে।

উদাহরণ: CustomValidator তৈরি এবং ব্যবহার

ধরা যাক, আমরা একটি ফর্ম তৈরি করছি যেখানে ব্যবহারকারী একটি ইমেইল ঠিকানা প্রদান করবে। আমাদের কাস্টম ভ্যালিডেশন প্রয়োগ করতে হবে, যা নিশ্চিত করবে যে ইমেইলটি নির্দিষ্ট ডোমেইন (যেমন, example.com) এ আছে কিনা।

1. ASPX ফাইল: CustomValidator কন্ট্রোল যুক্ত করা

<asp:TextBox ID="txtEmail" runat="server" placeholder="Enter your email"></asp:TextBox>
<asp:CustomValidator ID="cvEmail" runat="server" 
    ControlToValidate="txtEmail" 
    OnServerValidate="ValidateEmail" 
    ErrorMessage="Email must be from example.com domain." 
    ForeColor="Red" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
  • এখানে, txtEmail কন্ট্রোলের ইনপুট যাচাই করতে cvEmail কাস্টম ভ্যালিডেটর ব্যবহার করা হচ্ছে।
  • ControlToValidate প্রপার্টি দ্বারা এটি নির্দেশ করা হচ্ছে যে, txtEmail কন্ট্রোলের ইনপুট যাচাই করতে হবে।
  • OnServerValidate ইভেন্টে ValidateEmail মেথড কল করা হবে।

2. Code-behind ফাইল (C#): Server-side Validation

protected void ValidateEmail(object source, ServerValidateEventArgs args)
{
    // ইমেইল ঠিকানা প্রাপ্ত করা
    string email = args.Value;
    
    // ইমেইল ডোমেইন যাচাই করা
    if (email.EndsWith("@example.com"))
    {
        args.IsValid = true; // ভ্যালিড হলে IsValid true হবে
    }
    else
    {
        args.IsValid = false; // ভ্যালিড না হলে IsValid false হবে
    }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        // ফর্ম সাবমিট বা ডেটা প্রসেস করার লজিক
        Response.Write("Email is valid.");
    }
    else
    {
        // যদি কোনো ভ্যালিডেশন ফেইল করে, তাতে কোনো ডেটা প্রসেস হবে না
        Response.Write("Email validation failed.");
    }
}
  • ValidateEmail মেথডটি ServerValidateEventArgs এর মাধ্যমে ইমেইল ইনপুট যাচাই করে।
  • যদি ইমেইলটি @example.com এ শেষ হয়, তবে এটি ভ্যালিড হবে এবং args.IsValid = true হবে।
  • যদি না হয়, তবে args.IsValid = false হবে এবং ত্রুটি বার্তা প্রদর্শিত হবে।

3. Client-side Validation (Optional)

আপনি যদি client-side ভ্যালিডেশনও যুক্ত করতে চান, তাহলে ClientValidationFunction প্রপার্টি ব্যবহার করতে পারেন। যেমন:

<asp:CustomValidator ID="cvEmail" runat="server" 
    ControlToValidate="txtEmail" 
    OnServerValidate="ValidateEmail" 
    ClientValidationFunction="ValidateEmailClient" 
    ErrorMessage="Email must be from example.com domain." 
    ForeColor="Red" />

<script type="text/javascript">
    function ValidateEmailClient(source, arguments) {
        var email = arguments.Value;
        if (email.indexOf("@example.com") == -1) {
            arguments.IsValid = false;  // Invalid email
        } else {
            arguments.IsValid = true;   // Valid email
        }
    }
</script>

এখানে, ValidateEmailClient ফাংশনটি ক্লায়েন্ট সাইডে চালানো হবে, যা ইমেইলের ডোমেইন যাচাই করবে এবং ফর্ম সাবমিটের আগে ফলাফল প্রদান করবে।


CustomValidator এর সুবিধা

  • কাস্টম ভ্যালিডেশন: CustomValidator কাস্টম ভ্যালিডেশন তৈরি করতে ব্যবহৃত হয়, যা ASP.NET এর পূর্বনির্ধারিত ভ্যালিডেশন কন্ট্রোলের বাইরে গিয়ে নিজস্ব শর্তে যাচাই করতে সক্ষম।
  • Server-side এবং Client-side Validation: এটি উভয় সাইডে ভ্যালিডেশন করতে সাহায্য করে, যার ফলে কার্যকারিতা এবং ইউজার এক্সপেরিয়েন্স উন্নত হয়।
  • ডায়নামিক ভ্যালিডেশন: বিভিন্ন কাস্টম শর্তের ভিত্তিতে ইনপুট যাচাই করা যায়, যেমন সংখ্যা, ইমেইল, ফোন নম্বর, বা কাস্টম লজিক।

উপসংহার

CustomValidator কন্ট্রোল ASP.NET Web Forms এ অত্যন্ত কার্যকরী একটি টুল যা ডেভেলপারদের কাস্টম ভ্যালিডেশন ফিচার তৈরির সুযোগ দেয়। এটি server-side এবং client-side উভয় ভ্যালিডেশন পদ্ধতি সমর্থন করে এবং ওয়েব অ্যাপ্লিকেশনের ইনপুট যাচাইয়ের প্রক্রিয়াকে আরও নমনীয় এবং কাস্টমাইজযোগ্য করে তোলে।

common.content_added_by

ValidationSummary এবং Validation Groups

246
246

ASP.NET Web Forms-এ ValidationSummary এবং Validation Groups দুটি গুরুত্বপূর্ণ ফিচার যা ফর্ম ডেটা ইনপুটে ভুল বা অনুপস্থিত তথ্য যাচাই করতে ব্যবহৃত হয়। এগুলো ওয়েব অ্যাপ্লিকেশনের ইউজার ইন্টারফেসকে আরও উন্নত এবং কার্যকরী করে তোলে, বিশেষ করে ফর্মে একাধিক ভ্যালিডেশন কন্ট্রোল ব্যবহৃত হলে।


ValidationSummary কী?

ValidationSummary হলো একটি কন্ট্রোল যা ফর্মের সমস্ত ভ্যালিডেশন কন্ট্রোলের ভুল বার্তা এক জায়গায় দেখানোর জন্য ব্যবহৃত হয়। যখন কোনো ভ্যালিডেশন কন্ট্রোল যেমন RequiredFieldValidator, RangeValidator ইত্যাদি একটি ফিল্ডে ত্রুটি সনাক্ত করে, তখন সেই ত্রুটি বার্তাগুলো ValidationSummary কন্ট্রোলের মাধ্যমে একত্রিত হয়ে ইউজারকে দেখানো হয়।

ValidationSummary ব্যবহার করার উপকারিতা:

  • User-friendly Error Display: একাধিক ভ্যালিডেশন কন্ট্রোলের ত্রুটি এক জায়গায় দেখানো হয়, যা ব্যবহারকারীর জন্য আরও পরিষ্কার এবং সহজ হয়।
  • Improved User Experience: ইউজাররা দেখতে পারে কোন ফিল্ডে ত্রুটি রয়েছে এবং তা দ্রুত সংশোধন করতে পারে।

ValidationSummary কিভাবে ব্যবহার করবেন?

  1. Default.aspx বা যে পেজে ভ্যালিডেশন করতে চান সেখানে একটি ValidationSummary কন্ট্রোল যোগ করুন:
<asp:ValidationSummary runat="server" id="vsSummary" ShowSummary="true" ShowMessageBox="false" />
  1. আপনি যদি ValidationSummary কন্ট্রোলের মাধ্যমে শুধুমাত্র সুনির্দিষ্ট ভ্যালিডেশন কন্ট্রোলের ত্রুটি বার্তা দেখাতে চান, তাহলে ValidationGroup ব্যবহার করতে পারেন (এটি নিচে আলোচনা করা হবে)।

Validation Groups কী?

Validation Groups ব্যবহার করার মাধ্যমে আপনি একটি পেজে একাধিক ভ্যালিডেশন গোষ্ঠী তৈরি করতে পারেন। এতে সুবিধা হল, আপনি নির্দিষ্ট একটি অংশ বা ফর্মের জন্য ভ্যালিডেশন করতে পারবেন এবং পুরো পেজের ভ্যালিডেশন একসাথে চালাতে হবে না। অর্থাৎ, একাধিক ফর্ম বা কন্ট্রোলের মধ্যে আপনি নির্দিষ্ট অংশে ভ্যালিডেশন প্রয়োগ করতে পারেন।

Validation Groups ব্যবহার করার উপকারিতা:

  • Multiple Forms Handling: একাধিক ফর্ম বা কন্ট্রোলের জন্য আলাদা আলাদা ভ্যালিডেশন প্রয়োগ করা যায়।
  • Targeted Validation: একাধিক ভ্যালিডেশন কন্ট্রোলের মধ্যে শুধুমাত্র নির্দিষ্ট গ্রুপের ত্রুটি বার্তা প্রদর্শন করা যায়।

Validation Groups কিভাবে ব্যবহার করবেন?

  1. ValidationControls (যেমন RequiredFieldValidator, RangeValidator ইত্যাদি) এর মধ্যে ValidationGroup অ্যাট্রিবিউট ব্যবহার করুন:
<asp:TextBox runat="server" id="txtName" />
<asp:RequiredFieldValidator runat="server" id="rfvName" ControlToValidate="txtName" 
                            InitialValue="Enter your name" ErrorMessage="Name is required" 
                            ValidationGroup="Group1" />
  1. এখন, যখন আপনি একটি Button কন্ট্রোল দিয়ে ফর্ম সাবমিট করবেন, তখন আপনি নির্দিষ্ট গ্রুপের জন্য ভ্যালিডেশন প্রয়োগ করতে পারবেন। Button কন্ট্রোলে ValidationGroup অ্যাট্রিবিউট সেট করুন:
<asp:Button runat="server" id="btnSubmit" Text="Submit" ValidationGroup="Group1" OnClick="btnSubmit_Click" />

এখন, যখন ইউজার Submit বাটন ক্লিক করবে, কেবলমাত্র Group1-এর ভ্যালিডেশন কন্ট্রোলগুলোই পরীক্ষা করা হবে। অন্যান্য গ্রুপের কন্ট্রোল পরীক্ষা করা হবে না।


ValidationSummary এবং Validation Groups একসাথে ব্যবহার

এখন, যদি আপনি ValidationSummary কন্ট্রোলের মাধ্যমে শুধুমাত্র একটি নির্দিষ্ট গ্রুপের ত্রুটি বার্তা দেখাতে চান, তবে আপনি ValidationGroup অ্যাট্রিবিউটটি ব্যবহার করতে পারেন:

<asp:ValidationSummary runat="server" id="vsSummary" ShowSummary="true" 
                       ValidationGroup="Group1" ShowMessageBox="false" />

এটি নিশ্চিত করবে যে ValidationSummary কেবলমাত্র Group1-এর ত্রুটি বার্তা প্রদর্শন করবে।


উদাহরণ:

ধরা যাক, আপনি দুটি ফর্ম তৈরি করেছেন, একটি Personal Info ফর্ম এবং আরেকটি Payment Info ফর্ম, এবং আপনি চান যে এই দুটি ফর্মের ভ্যালিডেশন একে অপরের সাথে মিশে না গিয়ে আলাদাভাবে কাজ করুক। আপনি ValidationGroup ব্যবহার করে এটি করতে পারেন:

<asp:TextBox runat="server" id="txtName" />
<asp:RequiredFieldValidator runat="server" id="rfvName" ControlToValidate="txtName" 
                            InitialValue="Enter your name" ErrorMessage="Name is required" 
                            ValidationGroup="PersonalInfo" />

<asp:TextBox runat="server" id="txtCardNumber" />
<asp:RequiredFieldValidator runat="server" id="rfvCardNumber" ControlToValidate="txtCardNumber" 
                            InitialValue="Enter your card number" ErrorMessage="Card number is required" 
                            ValidationGroup="PaymentInfo" />

<asp:Button runat="server" id="btnSubmitPersonal" Text="Submit Personal Info" ValidationGroup="PersonalInfo" OnClick="btnSubmitPersonal_Click" />
<asp:Button runat="server" id="btnSubmitPayment" Text="Submit Payment Info" ValidationGroup="PaymentInfo" OnClick="btnSubmitPayment_Click" />

এখানে, btnSubmitPersonal শুধুমাত্র PersonalInfo গ্রুপের ভ্যালিডেশন চালাবে এবং btnSubmitPayment শুধুমাত্র PaymentInfo গ্রুপের ভ্যালিডেশন চালাবে।


উপসংহার

ValidationSummary এবং Validation Groups হলো দুটি শক্তিশালী টুল যা ASP.NET Web Forms এ ফর্ম ভ্যালিডেশনকে আরও সহজ এবং কার্যকরী করে তোলে। ValidationSummary কন্ট্রোল ব্যবহার করে আপনি ফর্মের সকল ত্রুটি এক জায়গায় দেখতে পারেন, এবং Validation Groups এর মাধ্যমে আপনি একাধিক ফর্মের মধ্যে আলাদা আলাদা ভ্যালিডেশন করতে পারবেন। এগুলো ইউজারের অভিজ্ঞতাকে উন্নত করে এবং ফর্ম সাবমিট করার আগে ভুল শনাক্ত করতে সহায়তা করে।

common.content_added_by

Client-Side এবং Server-Side Validation

230
230

Client-Side এবং Server-Side Validation দুটি গুরুত্বপূর্ণ প্রযুক্তি যা ওয়েব অ্যাপ্লিকেশনগুলিতে ডেটা সঠিকভাবে যাচাই করার জন্য ব্যবহৃত হয়। Client-Side Validation ব্যবহারকারীর পক্ষ থেকে ডেটা যাচাই করে যখন পেজটি ব্রাউজারে রেন্ডার হয়, আর Server-Side Validation সার্ভারে ডেটা যাচাই করে যখন ডেটা সাবমিট করা হয়। এই উভয় প্রক্রিয়া ওয়েব অ্যাপ্লিকেশনকে নিরাপদ এবং কার্যকরী করতে সহায়তা করে।


Client-Side Validation (ক্লায়েন্ট সাইড ভ্যালিডেশন)

Client-Side Validation হলো ডেটা যাচাই করার একটি প্রক্রিয়া যা ব্যবহারকারীর ব্রাউজারে চলে, অর্থাৎ ফর্ম সাবমিট হওয়ার আগে ফর্মের ডেটা পেজের মাধ্যমে ব্যবহারকারীর ডিভাইসেই যাচাই করা হয়। এর প্রধান সুবিধা হলো এটি দ্রুত এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।

Client-Side Validation এর বৈশিষ্ট্য:

  • দ্রুত প্রতিক্রিয়া: ক্লায়েন্ট সাইডে কোড এক্সিকিউট হওয়ার ফলে, ডেটা যাচাই করার সময় খুব কম লাগে এবং পেজ রিফ্রেশ বা সার্ভারে যোগাযোগের প্রয়োজন হয় না।
  • ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন: ফর্মের ত্রুটি দ্রুত দেখানো হয়, যা ব্যবহারকারীর ইনপুট সঠিকভাবে পূর্ণ করার জন্য সহায়ক হয়।
  • কম লোড: সার্ভারে অপ্রয়োজনীয় ডেটা পাঠানোর আগে ক্লায়েন্টেই যাচাই হয়ে যায়, ফলে সার্ভারের লোড কমে।

Client-Side Validation এর উদাহরণ:

  • HTML5 Validation: আধুনিক ব্রাউজারগুলোতে required, email, minlength, maxlength ইত্যাদি HTML অ্যাট্রিবিউট ব্যবহার করে ফর্ম ভ্যালিডেশন করা যায়।

    উদাহরণ:

    <form>
        <input type="email" name="userEmail" required />
        <input type="submit" value="Submit" />
    </form>
    
  • JavaScript Validation: আপনি JavaScript ব্যবহার করে আরও জটিল ভ্যালিডেশন করতে পারেন। যেমন, একটি ফর্মে ব্যবহারকারী একটি নির্দিষ্ট টেক্সট ইনপুটের মধ্যে সংখ্যা না লিখলে সতর্কবার্তা দেখানো।

    উদাহরণ:

    <form onsubmit="return validateForm()">
        <input type="text" id="username" name="username" />
        <input type="submit" value="Submit" />
    </form>
    
    <script type="text/javascript">
        function validateForm() {
            var username = document.getElementById('username').value;
            if (username == "") {
                alert("Username must be filled out");
                return false;
            }
            return true;
        }
    </script>
    

Server-Side Validation (সার্ভার সাইড ভ্যালিডেশন)

Server-Side Validation হলো ডেটা যাচাই করার প্রক্রিয়া যেখানে ফর্মের ডেটা প্রথমে সার্ভারে পাঠানো হয় এবং তারপর সার্ভারে সেটি যাচাই করা হয়। এই প্রক্রিয়া নিশ্চিত করে যে, নিরাপত্তা এবং ডেটা সঠিকতা সর্বোচ্চ পর্যায়ে থাকে, কারণ এটি ব্যবহারকারীর ব্রাউজারের নিয়ন্ত্রণের বাইরে।

Server-Side Validation এর বৈশিষ্ট্য:

  • নিরাপত্তা: ক্লায়েন্ট সাইডে JavaScript বা HTML5 Validation পরিহার করে, সার্ভার সাইডে ডেটা যাচাই করা নিরাপদ। এটি Cross-site Scripting (XSS) এবং SQL Injection রোধ করতে সহায়তা করে।
  • নির্ভরযোগ্যতা: ক্লায়েন্ট সাইডের কোড ভাঙতে বা বypass করা সহজ, কিন্তু সার্ভার সাইড ভ্যালিডেশন প্রায়শই অপরিবর্তিত থাকে।
  • ডেটা সঠিকতা: সমস্ত ইনপুট ডেটা নিশ্চিত করার জন্য, সার্ভার সাইডে শেষ যাচাই করা হয়।

Server-Side Validation এর উদাহরণ:

ASP.NET Web Forms এ সার্ভার সাইড ভ্যালিডেশন সাধারণত Validators ব্যবহার করে করা হয়। যেমন, RequiredFieldValidator, RangeValidator, RegularExpressionValidator ইত্যাদি।

উদাহরণ:

<asp:TextBox ID="txtUsername" runat="server" />
<asp:RequiredFieldValidator 
    ID="rfvUsername" 
    runat="server" 
    ControlToValidate="txtUsername" 
    ErrorMessage="Username is required" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />

কোডবিহাইন্ড:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        // Submit data to the database
    }
}

এই উদাহরণে, যদি ব্যবহারকারী ফর্মে Username ফিল্ড পূর্ণ না করেন, তবে RequiredFieldValidator ত্রুটি দেখাবে এবং ডেটা সাবমিট হবে না।


Client-Side এবং Server-Side Validation এর তুলনা

বৈশিষ্ট্যClient-Side ValidationServer-Side Validation
প্রতিক্রিয়াদ্রুত, ইনস্ট্যান্টধীর, সার্ভারে যোগাযোগের প্রয়োজন
নিরাপত্তানিরাপত্তা কম, ব্যবহারকারী কোড পরিবর্তন করতে পারেনিরাপদ, সার্ভারে ডেটা যাচাই হয়
ব্যবহারকারীর অভিজ্ঞতাভালো, দ্রুত রেসপন্সকম, পেজ লোড হতে পারে
নির্ভরযোগ্যতাকম, ক্লায়েন্ট সাইড কোড বাইপাস হতে পারেউচ্চ, সার্ভারে সমস্ত ডেটা যাচাই করা হয়
পারফরম্যান্সদ্রুত, সার্ভারের উপর লোড কমপারফরম্যান্স কম হতে পারে, কারণ সার্ভারের সাথে যোগাযোগের প্রয়োজন

কবে কোনটি ব্যবহার করবেন?

  • Client-Side Validation ব্যবহার করা উচিত যখন আপনি দ্রুত প্রতিক্রিয়া চান এবং ফর্মের ইনপুট যাচাইয়ের সময় ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে চান। তবে, এটি শুধুমাত্র UI validation এর জন্য উপযুক্ত।
  • Server-Side Validation ব্যবহার করা উচিত যখন আপনি নিরাপত্তা এবং ডেটা সঠিকতা নিশ্চিত করতে চান। এটি সমস্ত ডেটা যাচাইয়ের শেষ স্তর হিসেবে কাজ করে, বিশেষত গুরুত্বপূর্ণ তথ্য সংরক্ষণের ক্ষেত্রে।

সারসংক্ষেপ

Client-Side Validation এবং Server-Side Validation উভয়ই প্রয়োজনীয়, তবে তারা বিভিন্ন উদ্দেশ্যে ব্যবহৃত হয়। Client-Side Validation ব্যবহারকারীর অভিজ্ঞতা উন্নত করে এবং Server-Side Validation নিরাপত্তা এবং সঠিকতা নিশ্চিত করে। ভাল পারফরম্যান্স এবং নিরাপত্তার জন্য উভয়ের সঠিক সমন্বয় করা উচিত।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion