我在ASP.NET Web表单应用中具有GridView,我需要添加一种基于2列对行进行排序的方法。我找到了一种使用Dataview的方法。
因此,从我的原始GridView中,我正在创建一个数据表,然后我做:
DataView dv = new DataView(dt);
dv.Sort = "Column_1, Column_2";
gridView.DataSource = dv;
gridView.DataBind();
现在,我可以对数据范围进行排序,然后可以将数据视图添加到GridView作为数据源。这很好,除了我的原始GridView具有一些设置为可见= false的列。进行此类排序后,从隐藏的列中删除了数据。
当我从数据表创建数据范围或进行排序时,这会发生吗?我该怎么做才能保留隐藏列中的值?
在排序之前,您必须设置列visible=false
,并且在排序之后,visible=true
将在排序的代码下更好地工作:
DataView dv = new DataView(dt);
dv.Sort = "Column_1, Column_2";
gridView.DataSource = dv;
gridView.DataBind();
这起作用,因为您尚未在Page_Load
中检查IsPostBack
。