Сортировка GridView с набором данных - PullRequest
1 голос
/ 13 апреля 2010

Следующий пример кода предназначен для сортировки GridView, сформированного с помощью DataSet.

Источник: http://www.highoncoding.com/Articles/176_Sorting_GridView_Manually_.aspx

Но это не выводит никакого вывода. Нет проблем в соединении sql. Я не могу отследить ошибку, пожалуйста, помогите мне. Спасибо.

public partial class _Default : System.Web.UI.Page 
{

    private const string ASCENDING = " ASC";
    private const string DESCENDING = " DESC";

    private DataSet GetData()
    {
         SqlConnection cnn = new SqlConnection("Server=localhost;Database=Northwind;Trusted_Connection=True;");
         SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 5 firstname,lastname,hiredate FROM EMPLOYEES", cnn);
         DataSet ds = new DataSet();
         da.Fill(ds);
         return ds;
    }

    public SortDirection GridViewSortDirection
    {
        get
        {
            if (ViewState["sortDirection"] == null)
                ViewState["sortDirection"] = SortDirection.Ascending;
            return (SortDirection)ViewState["sortDirection"];
        }
        set { ViewState["sortDirection"] = value; }
    }

    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sortExpression = e.SortExpression;
        if (GridViewSortDirection == SortDirection.Ascending)
        {
            GridViewSortDirection = SortDirection.Descending;
            SortGridView(sortExpression, DESCENDING);
        }
        else
        {
            GridViewSortDirection = SortDirection.Ascending;
            SortGridView(sortExpression, ASCENDING);
        }
    }

    private void SortGridView(string sortExpression, string direction)
    {
        // You can cache the DataTable for improving performance
        DataTable dt = GetData().Tables[0];
        DataView dv = new DataView(dt);
        dv.Sort = sortExpression + direction;
        GridView1.DataSource = dv;
        GridView1.DataBind();
    }
}

Страница aspx

asp:GridView  ID="GridView1"  runat="server"  AllowSorting="True"  OnSorting="GridView1_Sorting">

/asp:GridView>

Ответы [ 3 ]

0 голосов
/ 20 мая 2013

В этой статье объясняется, как сортировать данные GridView в ASP.NET. Элемент управления GridvIew - это мощный элемент управления сеткой данных, который позволяет отображать данные в табличном формате с сортировкой и разбивкой на страницы. Это также позволяет нам манипулировать данными.

http://www.dotnetfunda.com/articles/article1598-how-to-sort-the-gridview-data-in-aspnet.aspx

0 голосов
/ 12 июля 2016
    //Code Behind
    DataSet ds = new DataSet();
    protected void Page_Load(object sender, EventArgs e)
            {

                if (!IsPostBack)
    {
    gvbind();
    }
}

    protected DataSet gvbind()  // Binding the gridview using Dataset and I am using stored procedure "Proc_Displayinfo"
            {
                con.Open();
                SqlCommand command = new SqlCommand("Proc_Displayinfo", con);
                SqlDataAdapter adpt = new SqlDataAdapter(command);
                DataSet ds = new DataSet();
                adpt.Fill(ds);
                GridView1.DataSource = ds.Tables[0];
                GridView1.DataBind();
                con.Close();
                return ds;

            }



    public SortDirection dir
        {
            get
            {
                if (ViewState["dirState"] == null)
                {
                    ViewState["dirState"] = SortDirection.Ascending;
                }
                return (SortDirection)ViewState["dirState"];
            } 
            set
            {
                ViewState["dirState"] = value;
            }

        }


           protected void Gridview1_Sorting(object sender, GridViewSortEventArgs e)
            {


                gvbind();
                DataTable dt = gvbind().Tables[0];

            {
                string SortDir = string.Empty;
                if (dir == SortDirection.Ascending)
                {
                    dir = SortDirection.Descending;
                    SortDir = "Desc";
                }
                else
                {
                    dir = SortDirection.Ascending;
                    SortDir = "Asc";
                }
                DataView sortedView = new DataView(dt);
                sortedView.Sort = e.SortExpression + " " + SortDir;
                GridView1.DataSource = sortedView;
                GridView1.DataBind();
            }
         }

    // Source Code

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="StudentId" onsorting="Gridview1_Sorting" AllowSorting="True">

    <asp:TemplateField HeaderText="StudentID" SortExpression="StudentID">
                                <ItemTemplate>
                                    <asp:Label ID="LBLStudentID" runat="server" Text='<%# Eval("StudentID") %>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="TXTStudentID" runat="server" Text='<%# Eval("StudentID") %>'></asp:TextBox>
                                </EditItemTemplate>
0 голосов
/ 13 апреля 2010

Проблема связана с событием Page Load, когда вы заполняете данные, в которые вы добавляете их, если условие (! IsPostBack).

...