<asp:BoundField DataField="danwei_name" HeaderText="单位"
SortExpression="danwei_name" />
或在GRIDVIEW中 -编辑列-选择要排序的字段,找到SortExpression排序表达式中加入要填写的字段
思路:使用ViewState将排序前状态保存,在if (!IsPostBack)
{
ViewState["SortOrder"] = "序列号";//排序时
ViewState["OrderDire"] = "ASC";
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)//对序列号进行双向排序
{//先编辑列,将序列号的SortExpress写成其字段host_sn
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
bind ();//排序后的绑定
}
public void bind()//排序时的绑定
{
string sqlstr = ViewState ["querystr"].ToString ();
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, conn );
DataSet myds = new DataSet();
myda.Fill(myds, "terminal");
DataView view = myds.Tables["terminal"].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view.Sort = sort;//dataview排序顺序
GridView1.DataSource = view;
GridView1.DataBind();
}