Asp.Net1.1 DataGrid 双向排序

ExpandedBlockStart.gif 前台代码
1               < asp:DataGrid  id ="DataGrid1"  runat ="server"  AutoGenerateColumns ="False"  Width ="496px"  AllowSorting ="True" >
2                   < Columns >
3                       < asp:BoundColumn  HeaderText ="id"  DataField ="id"  SortExpression ="id" ></ asp:BoundColumn >
4                       < asp:BoundColumn  HeaderText ="name"  DataField ="name"  SortExpression ="name" ></ asp:BoundColumn >
5                       < asp:BoundColumn  HeaderText ="age"  DataField ="age"  SortExpression ="age" ></ asp:BoundColumn >
6                       < asp:BoundColumn  HeaderText ="sex"  DataField ="sex"  SortExpression ="sex" ></ asp:BoundColumn >
7                   </ Columns >
8               </ asp:DataGrid >
9 

 

 1       Private   Sub  Page_Load( ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)  Handles   MyBase .Load
 2           ' 在此处放置初始化页的用户代码
 3           If   Me .IsPostBack  =   False   Then
 4              BindDataGrid()
 5           End   If
 6       End Sub
 7 
 8       Private   Function  GetDatasource()  As  DataView
 9           Dim  dt  As  DataTable  =   New  DataTable
10          dt.Columns.Add( " id " GetType (System.Int32))
11          dt.Columns.Add( " name " GetType (System.String))
12          dt.Columns.Add( " age " GetType (System.Int32))
13          dt.Columns.Add( " sex " GetType (System.Boolean))
14 
15           Dim  dr  As  DataRow
16           For  i  As   Integer   =   0   To   10
17              dr  =  dt.NewRow
18              dr( 0 =  i
19              dr( 1 =   " name "   &  i
20              dr( 2 =   15   +   2   *  i
21              dr( 3 =  i  Mod   2
22              dt.Rows.Add(dr)
23           Next
24 
25           Dim  dv  As  DataView
26          dv  =  dt.DefaultView
27 
28           If  ( IsNothing ( Me .DataGrid1.Attributes( " OrderBy " ))  =   False Then
29              dv.Sort  =   Me .DataGrid1.Attributes( " OrderBy " )
30           End   If
31 
32           Return  dv
33       End Function
34 
35       Private   Sub  BindDataGrid()
36           Me .DataGrid1.DataSource  =  GetDatasource()
37           Me .DataGrid1.DataBind()
38       End Sub
39 
40 
41       Private   Sub  DataGrid1_ItemDataBound( ByVal  sender  As   Object ByVal  e  As  System.Web.UI.WebControls.DataGridItemEventArgs)  Handles  DataGrid1.ItemDataBound
42           If  e.Item.ItemType  =  ListItemType.Item  Or  e.Item.ItemType  =  ListItemType.AlternatingItem  Then
43               If  e.Item.Cells( 3 ).Text  =   " True "   Then
44                  e.Item.Cells( 3 ).Text  =   " "
45               Else
46                  e.Item.Cells( 3 ).Text  =   " "
47               End   If
48           End   If
49       End Sub
50 
51       Private   Sub  DataGrid1_SortCommand( ByVal  source  As   Object ByVal  e  As  System.Web.UI.WebControls.DataGridSortCommandEventArgs)  Handles  DataGrid1.SortCommand
52           ' 找到排序的列,并修改它的排序属性
53           Dim  clm  As  DataGridColumn  =   Nothing
54           For  i  As   Integer   =   0   To   Me .DataGrid1.Columns.Count
55               If   Me .DataGrid1.Columns(i).SortExpression  =  e.SortExpression  Then
56                  clm  =   Me .DataGrid1.Columns(i)
57                   Exit   For
58               End   If
59           Next
60 
61           If  e.SortExpression.ToLower().IndexOf( " desc " >   0   Then
62              clm.SortExpression  =  e.SortExpression.ToLower().Replace( " desc " " asc " )
63           ElseIf  e.SortExpression.ToLower().IndexOf( " asc " >   0   Then
64              clm.SortExpression  =  e.SortExpression.ToLower().Replace( " asc " " desc " )
65           Else
66              clm.SortExpression  =  e.SortExpression.ToLower()  &   "  desc "
67           End   If
68 
69           Me .DataGrid1.Attributes( " OrderBy " =  clm.SortExpression
70 
71          BindDataGrid()
72       End Sub
73 

 

转载于:https://www.cnblogs.com/luqingfei/archive/2010/06/11/1756038.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值