پرکردن GridView با انتخاب رکورد از DropDownList

دوشنبه 25 خرداد 1394

در این مقاله قصد داریم ، درباره پر کردن اطلاعات گرید ویو با انتخاب یک رکود در DropDownList توسط jQuery در Asp.Net آموزش دهیم

برای شروع به کار بایستی یک بانک  اطلاعاتی به نام TestDB و یک جدول به نام EmployeeTeam ایجاد کنیم

Create DataBase TestDB
GO
Use  TestDB
GO
CREATE TABLE [dbo].[EmployeeTeam](  
    [Employee_ID] [int] IDENTITY(1,1) NOT NULL,  
    [Name] [nvarchar](50) NULL,  
    [Manager_ID] [int] NULL,  
    [Email] [nvarchar](50) NULL,  
    [Mobile] [nvarchar](50) NULL,  
    [Country] [nvarchar](50) NULL,  
    [IsManager] [bit] NULL,  
 CONSTRAINT [PK_EmployeeTeam] PRIMARY KEY CLUSTERED   
(  
    [Employee_ID] ASC  
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  
) ON [PRIMARY]  
  
GO  
  
SET ANSI_PADDING OFF  
GO  

و حال شروع به ثبت داده به صورت دستی میکنیم

همان طور که مشاهده میکنید در ستون Manager_ID آیدی مدیر را  باید درج کرد که اطلاعات گرید بر اساس آیدی مدیر پر میشود  و همچنین فیلد IsManager باید برای نمایش در گرید برابر با True قراردهیم.

حال ویژوال استادیو راباز کرده ویک پروژه از Asp.Net ایجاد میکنیم.و کد های زیر را به صفحه Default.aspx اضافه میکنیم

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DropDownGridView.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>برنامه نویسان</title>
</head>
<body>
    <form id="form1" runat="server">
        <table style="width: 100%; text-align: center; border: solid 5px red; background-color: yellow; vertical-align: top;">
            <tr>
                <td>
                    <div>
                        <fieldset style="width: 99%;">
                            <legend style="font-size: 20pt; color: red; font-family: Verdana">پر کردن گرید </legend>
                            <table style="padding: 20px; background-color: skyblue; width: 100%; text-align: center;">
                                <tr style="background-color: orange; height: 40px;">
                                    <td style="width: 25%; text-align: left; padding-left: 20px; font-family: Verdana">انتخاب آیتم: </td>
                                    <td style="text-align: left;">
                                        <asp:DropDownList ID="ddlManager" runat="server" AutoPostBack="True"
                                            OnSelectedIndexChanged="ddlManager_SelectedIndexChanged" Height="18px"
                                            Width="200px" CausesValidation="True">
                                        </asp:DropDownList><br />

                                    </td>
                                </tr>
                                <tr>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td colspan="2">
                                        <asp:GridView ID="GridViewEmployee" runat="server" AutoGenerateColumns="False" Width="100%"
                                            BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" Font-Names="verdana"
                                            CellPadding="4" GridLines="Horizontal" EmptyDataText="زیر گروهی وجود ندارد">
                                            <Columns>
                                                <asp:BoundField HeaderText="آیدی  مدیر" DataField="Employee_Id" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                                <asp:BoundField HeaderText="نام" DataField="Name" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                                <asp:BoundField HeaderText="ایمیل" DataField="Email" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                                <asp:BoundField HeaderText="همراه" DataField="Mobile" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                                <asp:BoundField HeaderText="کشور" DataField="Country" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" />
                                            </Columns>
                                            <FooterStyle BackColor="White" ForeColor="#333333" />
                                            <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
                                            <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
                                            <RowStyle BackColor="White" ForeColor="#333333" />
                                            <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
                                            <SortedAscendingCellStyle BackColor="#F7F7F7" />
                                            <SortedAscendingHeaderStyle BackColor="#487575" />
                                            <SortedDescendingCellStyle BackColor="#E5E5E5" />
                                            <SortedDescendingHeaderStyle BackColor="#275353" />
                                        </asp:GridView>
                                    </td>
                                </tr>
                                <tr>
                                    <td colspan="2"></td>
                                </tr>
                            </table>

                        </fieldset>
                    </div>
                </td>
            </tr>
        </table>

    </form>
</body>
</html>

و حال کد های زیر را در قسمت دستورات برنامه اضافه میکنیم:

using System;  
using System.Collections.Generic;  
using System.Configuration;  
using System.Data;  
using System.Data.SqlClient;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
  
namespace DropDownGridView  
{  
    public partial class Default : System.Web.UI.Page  
    {  
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["EMPCON"].ConnectionString);  
  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            if (!Page.IsPostBack)  
            {  
                BindAllManagerDropDown();  
            }  
        }  
  
        protected void BindAllManagerDropDown()  
        {  
            SqlCommand cmd = new SqlCommand();  
            SqlDataAdapter da = new SqlDataAdapter();  
            DataTable dt = new DataTable();  
            try  
            {  
                cmd = new SqlCommand("Select * from EmployeeTeam WHERE IsManager=1", con);  
                da.SelectCommand = cmd;  
                da.Fill(dt);  
                ddlManager.DataSource = dt;  
                ddlManager.DataTextField = "Name";  
                ddlManager.DataValueField = "Employee_Id";  
                ddlManager.DataBind();  
                ddlManager.Items.Insert(0, "-- Select Manager --");  
                   
            }  
            catch (Exception ex)  
            {  
  
            }  
            finally  
            {  
                cmd.Dispose();  
                da.Dispose();  
                dt.Clear();  
                dt.Dispose();  
            }  
        }  
        protected void ddlManager_SelectedIndexChanged(object sender, EventArgs e)  
        {  
            try  
            {  
                int managerID = Convert.ToInt32(ddlManager.SelectedValue);  
                BindManagerEMPLOYEE(managerID);  
            }  
            catch (Exception ex)  
            {  
  
            }  
        }  
  
        private void BindManagerEMPLOYEE(int managerID)  
        {  
            DataTable dt = new DataTable();  
            SqlDataAdapter adp = new SqlDataAdapter();  
            try  
            {  
                SqlCommand cmd = new SqlCommand("select *  from EmployeeTeam where Manager_ID=" + managerID + " ", con);  
                adp.SelectCommand = cmd;  
                adp.Fill(dt);  
  
                if (dt.Rows.Count > 0)  
                {  
                    GridViewEmployee.DataSource = dt;  
                    GridViewEmployee.DataBind();  
                }  
                else  
                {  
                    GridViewEmployee.DataSource = null;  
                    GridViewEmployee.DataBind();  
                }  
            }  
            catch (Exception ex)  
            {  
  
            }  
            finally  
            {  
                dt.Clear();  
                dt.Dispose();  
                adp.Dispose();  
            }  
        }  
    }  
}  

فقط این نکته را یادآوری کنم که اطلاعات زیر را باستی در web.confing برنامه اضافه کنید.

  <connectionStrings>
    <add name="EMPCON" 
         connectionString="Data Source=.;Initial Catalog=TestDB;Integrated Security=True"/>
  </connectionStrings>
</configuration>

حال برنامه را اجرا نمایید

 

همان طور که مشاهده می کنید تمام زیر گروه های "احسان حسینی " در گریدویو  نمایش داده شده است

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

احسان حسینی

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

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

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