DataGrid双向排序

1、属性生成器->常规->允许排序 AllowSorting="True"
2、属性生成器->列->为要排序的每个列加上排序表达式 SortExpression="kmdm"
3、
private void Page_Load(object sender, System.EventArgs e)
{
 if (!IsPostBack)
 {
  if(this.kjkm_dg.Attributes["SortExpression"]==null)    
  {
   this.kjkm_dg.Attributes["SortExpression"]="kmdm";//默认排序字段kmdm
   kjkm_dg.Attributes["SortDirection"]="ASC";//默认排序方向为升序
  }
  DBind();
 }
}
protected void DBind()
{
 DataView dv=new DataView();
 dv=ds.Tables[0].DefaultView;   //指定视图的排序方式;
 dv.Sort=kjkm_dg.Attributes["SortExpression"]+" "+kjkm_dg.Attributes["SortDirection"];
 kjkm_dg.DataSource=dv;
 kjkm_dg.DataBind(); 
}
private void kjkm_dg_SortCommand(object source,WebControls.DataGridSortCommandEventArgs e)
{
 string SortExpression=e.SortExpression.ToString();//获得当前排序表达式
 string SortDirection="ASC"; //为排序方向变量赋初值
 if(SortExpression==kjkm_dg.Attributes["SortExpression"])//如果为当前排序列
 {//获得下一次的排序状态
  SortDirection=(kjkm_dg.Attributes["SortDirection"].ToString()==SortDirection?"DESC":"ASC");
 }
 kjkm_dg.Attributes["SortExpression"]=SortExpression;
 kjkm_dg.Attributes["SortDirection"]=SortDirection;
 DBind();
}
















 



posted @ 2007-08-09 11:39  Microbar  阅读(257)  评论(0编辑  收藏  举报