0

我正在创建一个新网站,并且一直在使用 VB 使用 ASP.NET。

我的网站适用于赛车手(高速公路)。我想以这样的格式为球迷提供一份车手名单 http://www.nba.com/lakers/roster?cid=nav_team_expanded

我在我的 SQL Server 数据库的数据集中拥有所有信息,但是在尝试创建类似于上述的表时遇到了各种问题。

我希望这一切都是动态的,所以没有人需要编辑网站。

最好和最简单的方法是什么?我尝试了各种我发现的教程,但没有一个能够有效地工作。

提前谢谢了!

到目前为止,这是我的代码。数据集填充了正确的信息,它只是试图找出如何以显示所有驱动程序的方式动态创建表。

        Dim dsDrivers As DataSet = MSSQL.CustomSQL("WASDA_Drivers", "SELECT CarNo,Name FROM WASDA_Drivers")
    Dim RowsCount As Integer = dsDrivers.Tables(0).Rows.Count / 4

    'Sorts Car Numbers Properly
    Dim CarNos As List(Of Integer) = New List(Of Integer)
    Dim g As Integer
    For z As Integer = 0 To dsDrivers.Tables(0).Rows.Count - 1
        If Integer.TryParse(dsDrivers.Tables(0).Rows(z).Item("CarNo"), g) Then
            CarNos.Add(g)
        End If
    Next
    CarNos.Sort()

    Dim rows, cells, j, i As Integer
    Dim count As Integer = 0
    rows = RowsCount * 2
    cells = 4
    For j = 0 To RowsCount - 1
        Dim oRow As New TableRow()
        For Each z As Integer In CarNos
            For i = 0 To cells - 1
                For x As Integer = 0 To dsDrivers.Tables(0).Rows.Count - 1
                    If CarNos(z).ToString = dsDrivers.Tables(0).Rows(x).Item("CarNo") Then
                        Dim oCell As New TableCell
                        oCell.Text = CarNos(z) & " : " & dsDrivers.Tables(0).Rows(x).Item("Name")
                        oRow.Cells.Add(oCell)
                        GoTo NextItem
                    End If
                Next
NextItem:
                    tblDrivers.Rows.Add(oRow)
                Next
                For i = 0 To cells - 1
                    Dim oCell As New TableCell()
                    'oCell.Controls.Add(New LiteralControl("row " & j & ", cell " & i))
                    'oCell.Controls.Add(New LiteralControl(dsDrivers.Tables(0).Rows(count).Item(0)))
                    oCell.Controls.Add(New LiteralControl(CarNos(count) & " : " & dsDrivers.Tables(0).Rows(count).Item(0)))
                    oRow.Cells.Add(oCell)
                    count = count + 1
                Next
            Next
        Next
4

3 回答 3

0

您不需要手动编写所有这些代码,而是可以使用 asp:ListView 并按照您想要的方式设置 LayoutTemplate 和 ItemTemplate。

于 2014-08-26T18:54:08.790 回答
0

在目录中显示产品列表时,我遇到了非常相似的问题。如果您想让每行的驱动程序数量动态调整大小以适应用户的屏幕,最简单的做法是使用 css 为固定大小的“平铺”创建一个类。将图块声明为 display=inline-block。即创建一个具有固定宽度和高度的框。然后使用从您的数据源读取数据并为每个驱动程序创建此磁贴的一个实例的中继器。不要做任何事情来强制换行,除非在最后一个之后——要么是一个 BR,要么将它们包装在一个 DIV 中。然后让浏览器将它们布置出来。它应该将它们串在页面上,直到空间用完,然后转到下一行,就像它包装文本一样。

于 2014-08-26T18:57:53.777 回答
0

用中继器玩了一会儿,它看起来正是我所追求的!

有一些戏剧让它以编程方式进行(主要是因为我的驱动程序编号数据库列是 VarChar,所以它的排序为 1、10、11、2、21、3 等 - 但会考虑修改数据库)。

非常感谢大家,真的被这个卡住了!

于 2014-08-27T16:07:33.817 回答