ASP.NET:DataGrid控件的排序功能

80酷酷网    80kuku.com

  asp.net|datagrid|datagrid控件|排序  上一节我们已经知道DataGrid排序功能是由AllowSorting属性控制的,这一小节里,我们将通过实例来验证这个功能。

    在DataCon Web项目里,添加一个窗体,命名为DataGrid_Sample4.aspx,添加一个DataGrid控件,DataGrid_Sample4.aspx的主要HTML代码如下:
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
   <FONT face="宋体"></FONT> 
   <asp:DataGrid id="DataGrid1"
            runat="server" PageSize =6
 AllowPaging="True" AllowSorting="True" BorderColor="#009900" BorderWidth="1px" CellPadding="0">
    <AlternatingItemStyle
               Font-Size="X-Small" BackColor="WhiteSmoke"> </AlternatingItemStyle>
 <ItemStyle Font-Size="X-Small" BackColor="#FFFFFF"> </ItemStyle>
   <HeaderStyle Font-Size="X-Small" Font-Bold="True" BackColor="LightSteelBlue"></HeaderStyle>
   <FooterStyle Wrap="False" BackColor="LightGray"></FooterStyle>
   <PagerStyle Font-Size="X-Small" Font-Bold="True" Position="TopAndBottom" BackColor="Linen" Mode="NumericPages"></PagerStyle>
  </asp:DataGrid>
</form>
</body>
DataGrid_Sample4.aspx.vb中的代码如下:

'----code begin----
'引入名称空间
Imports System
Imports System.Data
Imports System.Web.UI
Public Class DataGrid_Sample4_aspx
    Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
    '此处省略了窗体设计器生成的代码,以节约篇幅
#End Region
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '使用viewstate("sort")来保存DataGrid排列数据的依据,初始化为id字段
        viewstate("sort") = "id"
        '调用数据绑定过程
        getdata()
End Sub
    '读取数据信息过程
    Sub getdata()
        Dim mycon As OleDb.OleDbConnection
        Try
            mycon = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "\StudentInfor.mdb")
            Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("select * from student", mycon)
            Dim dt As Data.DataSet = New Data.DataSet
            mycmd.Fill(dt)
            Dim dv As Data.DataView = New Data.DataView
            '声明DataView类,并实例化
            dv = dt.Tables(0).DefaultView
            dv.Sort = viewstate("sort")
            '指定DataView类的Sort值,这个值由viewstate("sort")传入
            DataGrid1.DataSource = dv
            '指定DataGrid1的数据源为DataView
            DataGrid1.DataBind()
        Catch ex As Exception
            Response.Write("程序出现错误,信息描述如下:
" & ex.Message.ToString)
        Finally
            mycon.Close()
        End Try
End Sub
    '翻页事件过程
 Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        getdata()
End Sub
    '请求排列顺序事件过程
 Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand
        viewstate("sort") = e.SortExpression.ToString
        getdata()
End Sub
End Class
'-----code end ----------
保存编译后,运行效果如图9.9所示。


图9.9  DataGrid_Sample4.aspx运行结果

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: