使用数据集排序GridView [英] Sorting GridView Formed With Data Set

查看:129
本文介绍了使用数据集排序GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码示例用于排序使用 DataSet 形成的 GridView

The following code sample is for sorting a GridView formed With a DataSet.

资料来源: http://www.highoncoding.com/Articles/ 176_Sorting_GridView_Manually_.aspx

但它没有显示任何输出。
sql连接没有问题。
我无法追踪错误,请帮助我。
谢谢。

But it is not displaying any output. There is no problem in sql connection. I am unable to trace the error, please help me. Thank You.

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页 p>

aspx page

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

/asp:GridView>


推荐答案

    //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>

这篇关于使用数据集排序GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆