前台代码
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")) = FalseThen
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 ObjectByVal 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 ObjectByVal 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 

 

posted on 2010-06-11 08:51  Louis.Lu.Sz  阅读(182)  评论(0编辑  收藏  举报