مرتب نمودن گریدویو در ASP.net

جمعه 26 تیر 1394

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

مرتب نمودن گریدویو در ASP.net

مراحل کار

گام 1

ساخت بانک اطلاعاتی

یک بانک اطلاعاتی با نام SortingGridView_DB ساخته و یک جدول مانند زیر در آن طراحی می نماییم :

آن را پر می نماییم :

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

گام 2

ویژوال استادیو را باز کرده و یک پروژه WebForm با نام gridviewsorting_demo ایجاد می نماییم.

بانک اطلاعاتی را به پروژه اضافه می نماییم.

رشته اتصال :
 

            SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=SortingGridView_DB;User ID=sa;Password=123");

گام 3

فایل gridviewsorting_demo.aspx را باز کرده و دیزاین را می سازیم که شامل گریدویو می باشد.

Gridviewsorting_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>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
      
        <table style="width:100%;">  
            <tr>  
                <td>  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td>  
                     </td>  
                <td>  
                    <asp:GridView ID="GridView1" runat="server" AllowSorting="True"   
                        AutoGenerateColumns="False" BackColor="White" BorderColor="#999999"   
                        BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataKeyNames="id"   
                        ForeColor="Black" GridLines="Vertical" onsorting="GridView1_Sorting">  
                        <AlternatingRowStyle BackColor="#CCCCCC" />  
                        <Columns>  
                            <asp:TemplateField HeaderText="Id" SortExpression="id">  
                                <%--<EditItemTemplate>  
                                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("id") %>'></asp:TextBox>  
                                </EditItemTemplate>--%>  
                                <ItemTemplate>  
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>  
                                </ItemTemplate>  
                            </asp:TemplateField>  
                            <asp:TemplateField HeaderText="First Name" SortExpression="fname">  
                                <EditItemTemplate>  
                                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("fname") %>'></asp:TextBox>  
                                </EditItemTemplate>  
                                <ItemTemplate>  
                                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("fname") %>'></asp:Label>  
                                </ItemTemplate>  
                            </asp:TemplateField>  
                            <asp:TemplateField HeaderText="Last Name" SortExpression="lname">  
                                <EditItemTemplate>  
                                    <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("lname") %>'></asp:TextBox>  
                                </EditItemTemplate>  
                                <ItemTemplate>  
                                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("lname") %>'></asp:Label>  
                                </ItemTemplate>  
                            </asp:TemplateField>  
                            <asp:TemplateField HeaderText="City" SortExpression="city">  
                                <EditItemTemplate>  
                                    <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("city") %>'></asp:TextBox>  
                                </EditItemTemplate>  
                                <ItemTemplate>  
                                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("city") %>'></asp:Label>  
                                </ItemTemplate>  
                            </asp:TemplateField>  
                        </Columns>  
                        <FooterStyle BackColor="#CCCCCC" />  
                        <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />  
                        <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />  
                        <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />  
                        <SortedAscendingCellStyle BackColor="#F1F1F1" />  
                        <SortedAscendingHeaderStyle BackColor="#808080" />  
                        <SortedDescendingCellStyle BackColor="#CAC9C9" />  
                        <SortedDescendingHeaderStyle BackColor="#383838" />  
                    </asp:GridView>  
                </td>  
                <td>  
                     </td>  
            </tr>  
            <tr>  
                <td>  
                     </td>  
                <td>  
                     </td>  
                <td>  
                     </td>  
            </tr>  
        </table>  
      
    </div>  
    </form>  
        <a href="http://www.barnamenevisan.org">مرجع تخصصی برنامه نویسان</a>

</body>  
</html> 

SortExpression عملیات مرتب سازی را روی فیلدهای ما انجام می دهد.

دیزاین شما مانند زیر خواهد شد :

هنگامی که از SortExpression استفاده می کنید خواهید دید که سر تیتر های (Header Text) گریدویو شامل زیر خط می شوند.

 


گام 4

gridviewsorting_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;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            refreshdata();
        }

    }
        public void refreshdata()
        {

            SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=SortingGridView_DB;User ID=sa;Password=123");
            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();
              ViewState["dirState"] = dt;
              ViewState["sortdr"] = "Asc";
            
        
        }
        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            DataTable dtrslt= (DataTable)ViewState["dirState"];
            if (dtrslt.Rows.Count > 0)
            {
                if (Convert.ToString(ViewState["sortdr"]) == "Asc")
                {
                    dtrslt.DefaultView.Sort = e.SortExpression + " Desc";
                    ViewState["sortdr"] = "Desc";
                }
                else
                {
                    dtrslt.DefaultView.Sort = e.SortExpression + " Asc";
                    ViewState["sortdr"] = "Asc";
                }
                GridView1.DataSource = dtrslt;
                GridView1.DataBind(); 
            
               
            }

        }
}

 

خروجی

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

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

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

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

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