【问题标题】:How to implement sorting functionality in gridview?如何在gridview中实现排序功能?
【发布时间】:2009-08-10 08:13:50
【问题描述】:

我正在尝试在网格视图中实现排序功能,但它不起作用.. 代码:

//enter code here 
public partial class _Default : System.Web.UI.Page 
{
SqlConnection con;
SqlCommand cmd;
DataSet ds;
SqlDataAdapter da;
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session["myDataSet"] = FillDataSet();

    }
}

private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
    string newSortDirection = String.Empty;

    switch (sortDirection)
    {
        case SortDirection.Ascending:
            newSortDirection = "ASC";
            break;

        case SortDirection.Descending:
            newSortDirection = "DESC";
            break;
    }

    return newSortDirection;
}
protected DataSet FillDataSet()
{
    string source = "Database=GridTest;Server=Localhost;Trusted_Connection=yes";
    con = new SqlConnection(source);
    cmd = new SqlCommand("proc_mygrid", con);
    ds = new DataSet();
    da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    GridView1.DataSource = ds;
    GridView1.DataBind();

    return ds;
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{

    //DataSet ds = FillDataSet();
    DataTable dt = ((DataSet)Session["myDataSet"]).Tables[0];
    if (dt != null)
    {
        dt.DefaultView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

有人可以建议我哪里出错了吗?

编辑:

enter code here  DataTable dtbl = ((DataSet)Session["myDataSet"]).Tables[0];
    dtbl.DefaultView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
    GridView1.DataSource = dtbl;
    GridView1.DataBind();

【问题讨论】:

    标签: c# asp.net gridview ado.net sorting


    【解决方案1】:

    下面是运行代码:

      private string GetSortDirection(string column)
    {
    
    
        string sortDirection = "DESC";
    
    
        string sortExpression = ViewState["SortExpression"] as string;
    
        if (sortExpression != null)
        {
    
            if (sortExpression == column)
            {
                string lastDirection = ViewState["SortDirection"] as string;
                if ((lastDirection != null) && (lastDirection == "DESC"))
                {
                    sortDirection = "ASC";
                }
            }
        }
    
    
        ViewState["SortDirection"] = sortDirection;
        ViewState["SortExpression"] = column;
    
        return sortDirection;
    }
    
     protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
    
        DataTable dtbl = ((DataSet)Session["myDataSet"]).Tables[0];
        dtbl.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
        GridView1.DataSource = dtbl;
        GridView1.DataBind();
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      相关资源
      最近更新 更多