استفاده از اعتبار سنجی در GridView توسط ASP.Net

دوشنبه 4 آبان 1394

يکی از کنترل های مهم ASP.NET که می توان از آن برای نمايش ساختار يافته و منظم اطلاعات دريافتی از منابع داده ای استفاده کرد ، کنترل GridView است . این کنترل اطلاعات دريافتی را در قالب يک جدول که دارای سطر و ستون هایی به اندازه رکوردها و فيلد های داده انتخابی است ، نمايش می دهد . سطر جدول اطلاعات مربوط به يک رکورد از بانک اطلاعاتی و هر ستون نيز اطلاعات مربوط به يک فيلد خاص را نمايش می دهد . در این مقاله چگونگی ایجاد اعتبارسنجی( Validation) در GridView را با استفاده از ASP.NET آموزش می دهیم.

استفاده از اعتبار سنجی در GridView توسط ASP.Net

ما از عملیات ویرایش روی قالب خود جهت کنترل اعتبار سنجی استفاده کنیم.

مقدار دهی اولیه

مرحله1: نرم افزار Visual Studio خود را باز کرده و یک وب سایت خالی ایجاد می کنیم، نام مناسبی مانند " gridview_demo" برای پروژه انتخاب کنید.

مرحله 2: در Solution Explorer  وب سایت خالی ایجاد شده را مشاهده می کنید. یک Web Form و پایگاه داده SQL اضافه کنید، برای انجام این کار مراحل زیر را انجام دهید:

برای Web Form:

gridview_demoروی (وب سایت خالی شما) راست کلیک کرده و بعد Add New Item سپس Web Form را انتخاب کنید. نام آن را gridview_demo.aspx قرار دهید.

برای پایگاه داده SQL Server :

بر روی نام پروژه راست کلیک کرده و بعد Add New Item و در آخر SQL Server Database را انتخاب کنبد. پایگاه داده را در پوشه App_Data_folder اضافه کنید.

قسمت پایگاه داده:

مرحله 3:

به پایگاه داده خود(Database.mdf) رفته  -که ما آن را ایجاد خواهیم کرد- و بعد tbl_Data. به جدول database.mdf و سپس جدول جدید ایجاد کنید. جدول خود را مانند زیر طراحی کنید:

Table - tbl_data(فراموش نکنید که حتما ID ایجاد شود و Identity را نیز فعال کنید).

 

قسمت طراحی

مرحله 4:

حالا فایل gridview_demo.aspx را باز کنید، ما طراحی خود را برای اتصال و ایجاد عملیات ویرایش ایجاد کردیم و  validation های خود را قرار داده ایم.

Gridview_demo.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title></title>  
    <style type="text/css">  
        .style1 {  
            text-decoration: underline;  
        }  
    </style>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
      
        <span class="style1"><strong>Gridview Demo with DropDownlist<br />  
        </strong></span><br />  
      
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"   
            AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" DataKeyNames="id"   
            onrowcancelingedit="GridView1_RowCancelingEdit"   
            onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"   
            onrowupdating="GridView1_RowUpdating" BackColor="White"   
            BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3"   
            CellSpacing="1" GridLines="None">  
            <Columns>  
                <asp:TemplateField HeaderText="Name">  
                    <EditItemTemplate>  
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>  
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox2" ForeColor="Red" ErrorMessage="Name Field can't be blanked"></asp:RequiredFieldValidator>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label>  
                    </ItemTemplate>  
                </asp:TemplateField>  
                <asp:TemplateField HeaderText="Email">  
                    <EditItemTemplate>  
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("email") %>'></asp:TextBox>  
                         <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox3" ForeColor="Red" ErrorMessage="Email Field can't be blanked"></asp:RequiredFieldValidator>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("email") %>'></asp:Label>  
                    </ItemTemplate>  
                </asp:TemplateField>  
                <asp:TemplateField HeaderText="Sport">  
                    <EditItemTemplate>  
                        <asp:DropDownList ID="DropDownList2" DataTextField="sport" DataValueField="sport" AppendDataBoundItems="True" runat="server"   
                            SelectedValue='<%# Bind("sport") %>'>                           
                            <asp:ListItem>--Select Sport--</asp:ListItem>  
                            
                            <asp:ListItem Value="Volleyball"></asp:ListItem>  
                             <asp:ListItem Value="Basketball"></asp:ListItem>  
                               <asp:ListItem Value="Cricket"></asp:ListItem>                                                   
                        </asp:DropDownList>  
                         <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" InitialValue="--Select Sport--" ControlToValidate="DropDownList2" ForeColor="Red" ErrorMessage=" Sport field is required  
 "></asp:RequiredFieldValidator>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("sport") %>'></asp:Label>  
                    </ItemTemplate>  
                </asp:TemplateField>  
            </Columns>  
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />  
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />  
            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />  
            <RowStyle BackColor="#DEDFDE" ForeColor="Black" />  
            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />  
            <SortedAscendingCellStyle BackColor="#F1F1F1" />  
            <SortedAscendingHeaderStyle BackColor="#594B9C" />  
            <SortedDescendingCellStyle BackColor="#CAC9C9" />  
            <SortedDescendingHeaderStyle BackColor="#33276A" />  
        </asp:GridView>  
        <asp:ValidationSummary ID="ValidationSummary1" ForeColor="Red" runat="server" />  
      
    </div>  
    </form>  
</body>  
</html> 

 

قسمت کد:

مرحله 5: gridview_demo.aspx.cs خود را باز کنید و کدهای زیر را بنویسید، برنامه ما به صورت زیر کار می کند.

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Data.SqlClient;  
using System.Data;  
  
public partial class _Default : System.Web.UI.Page  
{  
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");  
    protected void Page_Load(object sender, EventArgs e)  
    {  
  
        if (!Page.IsPostBack)  
        {  
            refreshdata();  
        }  
  
    }  
  
    public void refreshdata()  
    {     
        SqlCommand cmd = new SqlCommand("select * from tbl_data", con);  
        SqlDataAdapter sda = new SqlDataAdapter(cmd);  
        DataTable dt = new DataTable();  
        sda.Fill(dt);  
        GridView1.DataSource = dt;  
        GridView1.DataBind();  
  
  
    }  
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)  
    {  
        GridView1.EditIndex = e.NewEditIndex;  
        refreshdata();  
    }  
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)  
    {  
        int id = Convert.ToInt16(GridView1.DataKeys[e.RowIndex].Values["id"].ToString());  
        SqlCommand cmd = new SqlCommand("delete from tbl_data where id = @id", con);  
        cmd.Parameters.AddWithValue("@id", id);  
        con.Open();  
        cmd.ExecuteNonQuery();  
        con.Close();  
        refreshdata();  
  
    }  
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)  
    {  
        GridView1.EditIndex = -1;  
        refreshdata();  
    }  
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)  
    {  
        int id = Convert.ToInt16(GridView1.DataKeys[e.RowIndex].Values["id"].ToString());  
        TextBox txtname = GridView1.Rows[e.RowIndex].FindControl("TextBox2") as TextBox;  
        TextBox txtemail = GridView1.Rows[e.RowIndex].FindControl("TextBox3") as TextBox;  
        DropDownList drpsport = GridView1.Rows[e.RowIndex].FindControl("DropDownList2") as DropDownList;  
        
        SqlCommand cmd = new SqlCommand("update tbl_data set name=@name, email=@email,sport=@sport where id =@id", con);  
        cmd.Parameters.AddWithValue("@name", txtname.Text);  
        cmd.Parameters.AddWithValue("@email", txtemail.Text);  
        cmd.Parameters.AddWithValue("@sport", drpsport.SelectedItem.Text);  
        cmd.Parameters.AddWithValue("@id", id);  
        con.Open();  
        cmd.ExecuteNonQuery();  
        con.Close();  
        refreshdata();        
            
  
    }  
      
} 

خروجی:

 

اعتبار سنجی با TextBox:

اعتبار سنجی با Dropdownlist:

 

لازم به ذکر است که بانک اطلاعاتی این نمونه برنامه به همراه آن به صورت Local و بر روی SQLEXPRESS وجود دارد، برای استفاده از آن باید SQLEXPRESS را روی سیستم خود نصب داشته باشید. برای دانلود SQLEXPRESS از این لینک می توانید استفاده کنید.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید