public string SortExpressionEx
{
get
{
if (ViewState["SortExpressionEx"] == null)
{
return null;
}
return ViewState["SortExpressionEx"].ToString();
}
set
{
ViewState["SortExpressionEx"] = value;
}
}
然后重写OnSorting事件如下:
protected override void OnSorting(GridViewSortEventArgs e)
{
SortExpressionEx = e.SortExpression;
SortExpressionStr = e.SortExpression + " " + SortDirectionStr;
OnBind();
if (SortDirectionStr.ToLower() == "asc")
{
SortDirectionStr = "DESC";
}
else
{
SortDirectionStr = "ASC";
}
}
并且增加如下的OnLoad事件
protected override void OnLoad(EventArgs e)
{
if (!Page.IsPostBack)
{
try
{
OnBind();
}
catch
{
}
}
base.OnLoad(e);
}
经过上面这样简单的改造,您再次使用GridViewEx的时候,在前台页面使用的时候,您只要按照这样的格式就可以了:
<%#Eval(''ID")%>
后台只需要添加这样的方法
public void BindData()
{
DataSet ds = new DataSet();
ds = //获得DataSet;
gridView1.DataSetSource = ds;
}
在页面中的Page_Load方法中,也不用再写
if(!Page.IsPostBack)
{
BindData();//绑定GridView的方法
}
注意,如果需要重新绑定GridView,只需要这样GridViewEx1.OnBind();即可。
来源:jillzhang的blogs