gridview - ASP.NET Gridview 中的排序

标签 gridview

是阿伦。这次我在 ASP.Net 中遇到了排序问题。对于第一次单击,降序工作正常,但在第二次单击时,不会再次进行升序。仍然是按降序排列。我正在使用 Tableadapter 显示 gridview 内容。请检查代码并纠正我遗漏的地方。

    protected void gv1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sdir = e.SortDirection == SortDirection.Ascending ? "DESC" : "ASC";
        DataView dv = new DataView(ds2.AllocationPending(ClientLoggedIn.Text));
        dv.Sort = e.SortExpression + " " + sdir;
        gv1.DataSource = dv;
        gv1.DataBind();
    }

另请解释一下 - 是否有其他方法可以在没有 Dataview 的情况下应用排序。

谢谢。

最佳答案

我已经找到了这个问题的解决方案。原因是 e.SortDirection 始终返回 Ascending。因此,我需要将 e.SortDirection 存储在 ViewState 中,并使用该值对数据 View 进行排序。更新后的代码如下:

    protected void gv1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string SortDirection = "DESC";
        if (ViewState["SortExpression"] != null)
        {
            if (ViewState["SortExpression"].ToString() == e.SortExpression)
            {
                ViewState["SortExpression"] = null;
                SortDirection = "ASC";
            }
            else
            {
                ViewState["SortExpression"] = e.SortExpression;
            }
        }
        else
        {
            ViewState["SortExpression"] = e.SortExpression;
        }

        DataView dv = new DataView(ds2.AllocationPending(ClientLoggedIn.Text));
        dv.Sort = e.SortExpression + " " + SortDirection;
        gv1.DataSource = dv;
        gv1.DataBind();
    }

关于gridview - ASP.NET Gridview 中的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416268/

相关文章:

c# - 如何上下移动 GridView 中的行?

css - Footable css 类添加逗号

css - headertext gridview 下的描述性文字

android - 在 Kotlin 中构建 GridView 时无法传递上下文

gridview - Flutter 重用 View

asp.net - GridView 更新后覆盖 editindex

asp.net - 分页GridView

java - 从 BaseAdapter 的 GridView 中检索 ArrayList 值

c# - 绑定(bind)到数据表时如何设置gridview列宽

android - 在没有流行库的情况下在 Android 中拉动刷新