建议从ASP.NET生成表格

时间:2014-08-26 16:32:12

标签: asp.net vb.net dynamic-tables

我正在创建一个新网站,并且已经使用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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

使用转发器玩了一下,它看起来正是我的追随!

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

非常感谢你们,真的被这个人困住了!