DataGrid應用的一個實例

1.最後的實現圖

頁面代碼 OnLineList.ascx

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="OnLineList.ascx.vb" Inherits="OnLineList" %>
<table align="center" style="height: 469px" cellpadding="0" cellspacing="0" width="10%">
    <tr style="width: 132px; height: 21px; color: #ffccff;" bgcolor="#fff0f5">
        <td style="height: 21px" width="18%" >
            <asp:Label ID="Label1" runat="server" ForeColor="Black" Text="Label" Width="132px"></asp:Label></td>
            <td style="width: 9%; height: 21px"><asp:Label ID="Label2" runat="server" ForeColor="Black" Text="Label" Width="69px"></asp:Label></td>
            <td style="height: 21px;" width="20%">
            <asp:Label ID="Label3" runat="server" ForeColor="Black" Text="Label" Width="122px"></asp:Label></td>
            <td style="height: 21px">
                &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                &nbsp; &nbsp; &nbsp; &nbsp;
                <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
                    <asp:ListItem Value="null">=請選擇排序方式=</asp:ListItem>
                    <asp:ListItem Value="NickName Desc"> 按暱稱降序排列</asp:ListItem>
                    <asp:ListItem Value="NickName Asc">   按暱稱升序排列</asp:ListItem>
                    <asp:ListItem Value="DateAdded Desc"> 按註冊日期升序排列</asp:ListItem>
                    <asp:ListItem Value="DateAdded Asc"> 按註冊日期降序排列</asp:ListItem>
                </asp:DropDownList></td>
    </tr>
    <tr>
        <td style="width: 132px; height: 228px" valign="top" colspan = 4>
            <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False" Height="40px" ShowFooter="True" Width="749px" CellPadding="0" AllowPaging="True" AllowSorting="True"  OnPageIndexChanged="DataGrid1_PageIndexChanged">
                   
              
               <Columns>
              
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>暱稱</center></b></HeaderTemplate>
                 <ItemTemplate><center><a href ="Detail?ID=<%# Encrypt(Eval("ID")) %>"><%#Eval("NickName")%></a></center></ItemTemplate>
                     <HeaderStyle Width="50px" />
                 <FooterTemplate><b><center>暱稱</center></b></FooterTemplate>
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>性別</center></b></HeaderTemplate>
                 <ItemTemplate><center>
                 <img src="<%# ReturnPicture(Eval("Sex"))%>" /></center>
                 </ItemTemplate>
                     <HeaderStyle Width="50px" />
                  <FooterTemplate><b><center>性別</center></b></FooterTemplate>
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>年齡</center></b></HeaderTemplate>
                 <ItemTemplate><center><%#ReturnAge(Eval("DateOfBirth"))%>歲</center>
                 </ItemTemplate>
                 <FooterTemplate><b><center>年齡</center></b></FooterTemplate>
                     <HeaderStyle Width="80px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>學歷</center></b></HeaderTemplate>
                 <ItemTemplate><center><%#Eval("Education")%></center></ItemTemplate>
                 <FooterTemplate><b><center>學歷</center></b></FooterTemplate>
                     <HeaderStyle Width="80px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>星座</center></b></HeaderTemplate>
                 <ItemTemplate><center><%#Eval("constellation")%></center></ItemTemplate>
                 <FooterTemplate><b><center>星座</center></b></FooterTemplate>
                     <HeaderStyle Width="80px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>職業</center></b></HeaderTemplate>
                 <ItemTemplate><center><%# Eval("Occupation") %></center></ItemTemplate>
                 <FooterTemplate><b><center>職業</center></b></FooterTemplate>
                     <HeaderStyle Width="100px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>地點</center></b></HeaderTemplate>
                 <ItemTemplate><center><%#Eval("WorkStation")%><%#Eval("WorkStations")%></center></ItemTemplate>
                 <FooterTemplate><b><center>地點</center></b></FooterTemplate>
                     <HeaderStyle Width="100px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>加入收藏</center></b></HeaderTemplate>
                 <ItemTemplate><center>加入收藏</center></ItemTemplate>
                 <FooterTemplate><b><center>加入收藏</center></b></FooterTemplate>
                     <HeaderStyle Width="100px" />
                 </asp:TemplateColumn>
                
                 <asp:TemplateColumn>
                 <HeaderTemplate><b><center>寫信</center></b></HeaderTemplate>
                 <ItemTemplate><center></ceng><img src="picture/message.gif" /></center></ItemTemplate>
                 <FooterTemplate><b><center>寫信</center></b></FooterTemplate>
                 </asp:TemplateColumn>
               
                
               </Columns>
            
               <AlternatingItemStyle BackColor ="MintCream" Height = 30px ForeColor="Blue" />
               <ItemStyle BackColor="PapayaWhip" Height = 30px ForeColor="Blue" />
               <HeaderStyle Height = 30px BackColor="#CC99FF" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" ForeColor="#CC0033" />
               <FooterStyle Height = 30px BackColor="#CC99FF" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" ForeColor="#C00000" />
               <PagerStyle Mode="NumericPages" Position="TopAndBottom" BackColor="LavenderBlush" HorizontalAlign="Center"   />
                <EditItemStyle ForeColor="Blue" />
            </asp:DataGrid>
            &nbsp;&nbsp;
        </td>
    </tr>
    <tr>
        <td style="width: 132px; height: 134px;" valign="top" colspan = 4>
            &nbsp;</tr>
</table>

 

後臺代碼OnLineList.ascx.vb

Imports System.Web
Imports System.Web.UI.WebControls
Imports System.Data
Imports System.Data.SqlClient
Imports Adsystech

Partial Class OnLineList
    Inherits System.Web.UI.UserControl

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        If Not IsPostBack Then
            DataListBind()
        End If
    End Sub
    Private Sub DataListBind()
        Dim RecordCount As Integer = 0
        Dim CurrentPage As Integer = 0
        Dim ds As DataSet = New DataSet()

        Dim sqlstr As String = "Select ID,NickName,Sex,DateOfBirth,Education,Occupation,WorkStation,WorkStations,constellation from Customer "
        ds = DataAccess.ExecuteDataset(DataAccess.ProviderType.SQL, Connstring, CommandType.Text, sqlstr, "Friends")
        Me.DataGrid1.DataSource = ds.Tables("Friends").DefaultView
        Me.DataGrid1.DataBind()

        RecordCount = ds.Tables("Friends").Rows.Count
        CurrentPage = Me.DataGrid1.CurrentPageIndex + 1
        Me.Label1.Text = "當前在線用戶共有" & RecordCount.ToString() & "人,"
        Me.Label2.Text = "共分爲" & Me.DataGrid1.PageCount & "頁,"
        Me.Label3.Text = "當前頁爲第" & CurrentPage & "頁"

    End Sub

    Public Function ReturnPicture(ByVal Sex As String) As String
        Dim URl As String = ""
        If (Sex = "男") Then
            URl = "picture/boy.gif"
            Return URl
        Else
            URl = "picture/girl.gif"
            Return URl
        End If
    End Function

    Public Function ReturnAge(ByVal Birthday As DateTime) As Integer
        Dim age As Integer = 0
        age = Year(DateTime.Now) - Year(Birthday)
        Return age
    End Function

    Protected Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
        Dim param = DropDownList1.SelectedValue
        If (param = "null") Then
            Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
            DataListBind()
        Else

            Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
            DataListBind(param)
        End If

       
    End Sub


    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        Dim param1 = DropDownList1.SelectedIndex
        If (param1 = 0) Then
            Me.DataGrid1.CurrentPageIndex = 0
            DataListBind()
        Else
            Me.DataGrid1.CurrentPageIndex = 0
            Dim param = DropDownList1.SelectedValue
            DataListBind(param)
        End If
    End Sub

    Private Sub DataListBind(ByVal param As String)


        Dim ds1 As DataSet = New DataSet()


        Dim sqlstr As String = "Select ID,NickName,Sex,DateAdded,DateOfBirth,Education,Occupation,WorkStation,WorkStations,constellation from Customer order by " & param & ""
        ds1 = DataAccess.ExecuteDataset(DataAccess.ProviderType.SQL, Connstring, CommandType.Text, sqlstr, "OnlineFriend")

        Me.DataGrid1.DataSource = ds1.Tables("OnlineFriend").DefaultView
        Me.DataGrid1.DataBind()
        Dim CurrentPage As Integer = 0

        CurrentPage = Me.DataGrid1.CurrentPageIndex + 1
        Me.Label3.Text = "當前頁爲第" & CurrentPage & "頁"
    End Sub
End Class

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章