c# - 排序 GridView

标签 c# asp.net .net sorting gridview

我有一个 GridView ,我在其中绑定(bind)了数据源,并且我必须为此 GridView 添加排序;我添加了下面的代码,但效果不佳。

private string ConvertSortDirectionToSql(SortDirection sortDireciton)
{
    string m_SortDirection = String.Empty;

    switch (sortDireciton)
    {
        case SortDirection.Ascending:
            m_SortDirection = "ASC";
            break;

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

    return m_SortDirection;
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable m_DataTable = GridView1.DataSource as DataTable;

    if (m_DataTable != null)
    {
        DataView m_DataView = new DataView(m_DataTable);
        m_DataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);

        GridView1.DataSource = m_DataView;
        GridView1.DataBind();
    }
}

最佳答案

你可以用这个,因为我也遇到了同样的问题,我是这样解决的。

public string SortingExpression
{
    get
    {
        if (this.ViewState["SortExpression"] == null)
            return "";
        else
            return (string)this.ViewState["SortExpression"];
    }

    set
    {
        this.ViewState["SortExpression"] = value;
    }
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable m_DataTable = GridView1.DataSource as DataTable;

    if (m_DataTable != null)
    {
        DataView m_DataView = new DataView(m_DataTable);
        SortingExpression = e.SortExpression + " " + (SortingExpression.Contains("ASC") ? "DESC" : "ASC");
        m_DataView.Sort =SortingExpression;

        GridView1.DataSource = m_DataView;
        GridView1.DataBind();
    }
}

关于c# - 排序 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966835/

相关文章:

c# - 为什么 C# 中不允许使用 const 参数?

mysql - 返回空数据时,从类型 'DBNull' 到类型 'Double' 的转换无效

c# - 选择最多的列表项

c# - 当我的应用程序加载时,我应该将什么加载到内存中?

javascript - 是否可以在运行时更改 AngularJS 变量的类型?

.net - 软件带宽/数据库增长公式

c# - MVC 从 Web 服务解析 XML

c# - 如何在同一解决方案中将通用 Windows 应用程序与旧版 .Net 4.5 应用程序进行实时通信。工控机?

c# - 使用 crlf 行定界符读取大文本文件的最佳方法

c# - RichTextBox 的自动化支持 - 无法使用 White'sUI 获取文本