DataGrid排序

第一:
None.gif 把DATAGRID的属性ALLOWSORTING改为TRUE
None.gif在PAGELOAD和DataGrid1_SortCommand、SortCommand中加
None.gifp
None.gif            
if (DataGrid1.Attributes[ " SortDirection " ] == " DESC " // 这里kjkm_dg为datagrid   ID
ExpandedBlockStart.gifContractedBlock.gif
             dot.gif {
InBlock.gif                DataGrid1.Attributes[
"SortDirection"]="ASC"//这里给datagrid增加一个排序方向属性,且默认为升序排列;
ExpandedBlockEnd.gif
            }

None.gif            
else
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                DataGrid1.Attributes[
"SortDirection"]="DESC"
ExpandedBlockEnd.gif            }

None.gif            mikecatbind();
None.gif
None.gif
None.gif
None.gif
None.gif
protected   void  mikecatbind()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            DataView dv
=new DataView();
InBlock.gif            SqlConnection conn 
= new SqlConnection("Server=.;UID=sa;PWD=;database=WJOA");
InBlock.gif            
string sql = "select * from UnitCode_T";
InBlock.gif            SqlDataAdapter da 
= new SqlDataAdapter(sql,conn);
InBlock.gif            DataSet ds 
= new DataSet();
InBlock.gif            da.Fill(ds,
"zwb");
InBlock.gif   
InBlock.gif            
string SortDirection=this.DataGrid1.Attributes["SortDirection"];
InBlock.gif            dv
=ds.Tables["zwb"].DefaultView;  //来自web service的dataset,这里随便一个ds就可以;
InBlock.gif
            dv.Sort="UnitCode"+" "+this.DataGrid1.Attributes["SortDirection"]; //指定视图的排序方式;
InBlock.gif
            this.DataGrid1.DataSource=dv; //指定数据源
InBlock.gif
            this.DataGrid1.DataBind(); //数据绑定
InBlock.gif

ExpandedBlockEnd.gif        }

None.gif
private   void  kjkm_dg_SortCommand( object  source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if(this.kjkm_dg.Attributes["SortDirection"]=="DESC"//这里kjkm_dg为datagrid   ID
ExpandedSubBlockStart.gifContractedSubBlock.gif
            dot.gif{
InBlock.gif                kjkm_dg.Attributes[
"SortDirection"]="ASC"//这里给datagrid增加一个排序方向属性,且默认为升序排列;
ExpandedSubBlockEnd.gif
            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                kjkm_dg.Attributes[
"SortDirection"]="DESC"
ExpandedSubBlockEnd.gif            }

InBlock.gif            mikecatbind();
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif 在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,主要是用DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下: 
None.gif
private   void  BindData() 
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif DataTable dt 
= dot.gifdot.gif.; 
InBlock.gif 
if(dt != null
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif
InBlock.gif  DataView dv 
= dt.DefaultView; 
InBlock.gif  
if(DataGrid1.Attributes["SortBy"!= null
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif
InBlock.gif   dv.Sort 
= DataGrid1.Attributes["SortBy"]; 
ExpandedSubBlockEnd.gif  }
 
InBlock.gif
InBlock.gif  DataGrid1.DataSource 
= dv; 
InBlock.gif  DataGrid1.DataBind(); 
ExpandedSubBlockEnd.gif }
 
ExpandedBlockEnd.gif}
 
None.gif
None.gif
private   void  DataGridSort( object  source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) 
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif DataGrid1.Attributes[
"SortBy"= sortstr; 
InBlock.gif 
this.BindData(); 
InBlock.gif
InBlock.gif 
//找到排序的列,并修改把它的排序属性 
InBlock.gif

InBlock.gif DataGridColumn clm 
= null
InBlock.gif
InBlock.gif 
for(int i=0;i<DataGrid1.Columns.Count;i++
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif
InBlock.gif  
if(DataGrid1.Columns[i].SortExpression == e.SortExpression ) 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif
InBlock.gif   clm 
= DataGrid1.Columns[i]; 
InBlock.gif   
break
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockEnd.gif }
 
InBlock.gif
InBlock.gif 
if(clm == nullreturn
InBlock.gif
InBlock.gif 
if(e.SortExpression.ToLower().IndexOf("desc"> 0
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif
InBlock.gif  clm.SortExpression 
= e.SortExpression.ToLower().Replace("desc","asc"); 
ExpandedSubBlockEnd.gif }
 
InBlock.gif 
else 
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif
InBlock.gif  
if(e.SortExpression.ToLower().IndexOf("asc"> 0
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif
InBlock.gif   clm.SortExpression 
= e.SortExpression.ToLower().Replace("asc","desc"); 
ExpandedSubBlockEnd.gif  }
 
InBlock.gif  
else 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif
InBlock.gif   clm.SortExpression 
= e.SortExpression.ToLower() + " desc"
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockEnd.gif }
 
ExpandedBlockEnd.gif}

None.gif
第二:

转载于:https://www.cnblogs.com/gjahead/archive/2006/06/23/433889.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值