首頁 | 社區 | 博客 | 招聘 | 文章 | 新聞 | 下載 | 讀書 | 代碼
親,您未登錄哦! 登錄 | 注冊

VB.NET實現DataList橫向數據交替變色

打印文章

分享到:
  昨天群里一個網友在說交替行變色的問題,我一看,這很簡單啊,不就是設置一下交替項的背景色不就行了嗎?本身DataList他的樣式也提供設置啊,不會嗎?但是他給我說了。他數據是設置一行顯示N條數據的,所以如果說設置了那個交替項的背景色的話根本就沒用.這樣設置了后,變成對項起作用了。就是說一行有N項,然后那個交替色就變成在這N項當中交替了.....

  啊!看來我把問題看簡單了!當時我想好像很少遇到過,要不自己試試!...倒.因為最近心情很壓抑,心情不太好.煩.沒多少心情認真去思考解決方式,用常規自己能想到的幾種解決都無法實現,解決很暈.然后逆,就索性不去想了.晚上聽完廣播后才又想起我要考慮這個問題,呵呵,只用了5分鐘時間就想到了這個解決方式,然后逆,又用了5分鐘時間去考證是否可行.今天早上來一擺弄,就可以起了。呵呵!

  廢話就不多說了.這個方法也是我唯一想到的方法,如果您有什么更好的方法,您也可以在這里給我提出.非常感謝!

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm15.aspx.vb" Inherits="WebApplication12.WebForm15"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title>WebForm15</title>
        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:datalist id="DataList1" style="Z-INDEX: 101; LEFT: 111px; POSITION: absolute; TOP: 54px"
                runat="server" RepeatDirection="Horizontal" RepeatColumns="3" Width="234px">
                <ItemTemplate>
                    <asp:Label ID="lblmsg" Runat=server Text=''<%# DataBinder.Eval(Container.DataItem,"id").ToString() %>''>
                    </asp:Label>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <asp:Label ID="Label2" Runat=server Text=''<%# DataBinder.Eval(Container.DataItem,"id").ToString() %>''>
                    </asp:Label>
                </AlternatingItemTemplate>
            </asp:datalist></form>
    </body>
</HTML>


Imports System
Imports System.Data
Imports System.Data.oledb

Public Class WebForm15Class WebForm15
    Inherits System.Web.UI.Page

Web 窗體設計器生成的代碼#Region " Web 窗體設計器生成的代碼 "

    ''該調用是 Web 窗體設計器所必需的。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent()

    End Sub
    Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList

    ''注意: 以下占位符聲明是 Web 窗體設計器所必需的。
    ''不要刪除或移動它。
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init()Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        ''CODEGEN: 此方法調用是 Web 窗體設計器所必需的
        ''不要使用代碼編輯器修改它。
        InitializeComponent()
    End Sub

#End Region
    Dim conn As OleDbConnection
    Dim i As Integer

    Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ''在此處放置初始化頁的用戶代碼
        conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("data/link.mdb"))
        Dim cmd As New OleDbDataAdapter("select top 15 id,jj from link", conn)
        Dim ds As New DataSet
        cmd.Fill(ds, "tab")

        DataList1.DataSource = ds.Tables("tab")
        DataList1.DataBind()
    End Sub

    Private Sub DataList1_ItemDataBound()Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
        i = i + 1
        If i > 3 And i <= 6 Then
            e.Item.BackColor = Color.Blue
        End If
        If i >= 6 Then
            i = 0
        End If
    End Sub
End Class

  在補充一下,這里的i>3 and i<=6這個,我剛才沒講清楚,可能您有點困惑呢!

  因為我這里是每行顯示三條數據啦.所以這里是3和6,如果您是5條的話,那么就是5和10了,以此類推! 

本欄文章均來自于互聯網,版權歸原作者和各發布網站所有,本站收集這些文章僅供學習參考之用。任何人都不能將這些文章用于商業或者其他目的。( Pfan.cn )

編程愛好者論壇

本欄最新文章

黑龙江p62彩票开奖