繁体   English   中英

排序只能工作一次

[英]Sorting works only once

我有GridView与排序,它工作得很好,但它只工作一次,是的,这不是重复我发现了很多问题,但它并没有帮助我。 请问它只排序一次是错的(就像方向不变)?

        ViewState["sort"] = "ASC" --> is declared in PageLoad

        protected void grid_sort(object sender, GridViewSortEventArgs e) 
        {
            DataView sorting = new DataView(data); //data is global DataTable

            if (ViewState["sort"].ToString() == "ASC")
                ViewState["sort"] = "DESC";
            else
                ViewState["sort"] = "ASC";

            sorting.Sort = e.SortExpression + " " + ViewState["sort"];
            data = sorting.ToTable();
            GridView1.DataSource = data;
            GridView1.DataBind();
        }

所有对象都放置在页面生命周期的末尾,因此当它呈现为HTML并发送到客户端时。 因此,您不能使用字段string direction = "ASC"来存储排序方向。 这将在每次回发时初始化为"ASC"

相反,你必须使用不同的方式,例如:

  • 会议
  • 的ViewState
  • HiddenField

ASP.NET状态管理概述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM