VB.net 如何使用 xml 创建 table 并在网页上显示 table

VB.net how to create table using xml and displaying the table on the webpage

有人可以帮我修改此代码,因为我尝试 运行 但 table 没有出现在页面上。我是 XML 的新手,有人给了我这个片段说 XML 编码对于 table 更可靠。

代码可能有效,但我不知道如何将它显示到页面上。我试着搜索,但我发现很多人也做了几乎相同的事情,但为什么它对我不起作用?虽然其他一些人制作了另一个 xml 文件来保存数据,但就我而言,我实际上计划从 MS SQL 2005 数据库中检索数据并将其显示在 table .我在这里错过了什么?

Dim dt As DataTable = Me.GetData()
    For Each row As DataRow In dt.Rows
        Dim tr As XElement = <tr></tr>

        For Each column In dt.Columns
            Dim td As XElement = <td></td>
            td.Value = row(column.Ordinal).ToString()

            tr.Add(td)
        Next

        table.Add(tr)
    Next

============================================= ====

对于一行和后续行中的每一列,时间应迭代 30 分钟。在每一行中,应该有 3 列,例如

的值

(0,0): 6.00am aaaa (0,1) 6.30am bbbb (0,2) 7.00am cccc

(1,0) 7.30am dddd (1,1) 8.00am eeee (1,2) 8.30am ffff

当天剩余时间

=========================================== 修改后

我的计划是显示 table,同时,当用户点击可用时间(free/not 已占用)时,用户将能够请求预约该时间一定时间,因此将执行插入到数据库的查询

我按照你的建议做了。我还重新安排了循环,使列循环在外面,行循环在里面。我这样做是为了让数据只显示一次,而不是在每个新行中重复显示每个新列。我已经如下所示编辑了我的代码,这样您就可以轻松理解我所做的事情。

你的时间增量对我不起作用,所以我尝试修改了一下,这个成功了。但问题是第一行第一列显示的时间是循环中最后一次迭代的时间(即 11:00:00 am - 因为我查询了 10 个数据)。并且它同时显示在该行的最后一列。第一个和最后一个的数据库值也相同。所以换句话说,只有 9 个数据被检索和显示。为什么会这样?

 Public Function DrawTable() As XElement
  Dim dt As DataTable = Me.GetData()
  Dim table As XElement = <table></table>
  Dim tr As XElement = <tr></tr>
  Dim td As XElement = <td></td>
  Dim dtTime As DateTime = #6:00:00 AM#
  Dim timeN = dtTime

  For Each row As DataRow In dt.Rows      
    For Each column In dt.Columns         
        td.Value = dtTime.ToString() + " "  + row(column.Ordinal).ToString()
        dtTime = dtTime.AddMinutes(30) 
        timeN = dtTime            
        tr.Add(td)
    Next

    table.Add(tr)
  Next
 Return table
 End Function

下面是 table 的样子

<table style="border:solid">
<tr>
<td style='border:groove'>6.00 AM aaaa </td>
<td style='border:groove'>6.30 AM bbbb </td>
<td style='border:groove'>7.00 AM cccc </td>
</tr>
<tr>
<td style='border:groove'>7.30 AM dddd </td>
<td style='border:groove'>8.00 AM eeee </td>
<td style='border:groove'>8.30 AM ffff </td>
</tr>
<tr>
<td style='border:groove'>9.00 AM gggg </td>
<td style='border:groove'>9.30 AM hhhh </td>
<td style='border:groove'>10.00 AM iiii </td>
</tr>
<tr>
<td style='border:groove'> ... </td>
<td style='border:groove'> ... </td>
<td style='border:groove'> ... </td>
</tr>
<tr>
<td style='border:groove'>5.00 AM fffe </td>
<td style='border:groove'>5.30 AM sefs </td>
<td style='border:groove'>   </td>
</tr>
</table>

 Public Function DrawTable() As XElement
    Dim dt As DataTable = Me.GetData()
    Dim table As XElement = <table></table>
    Dim tr As XElement = <tr></tr>
    Dim td As XElement = <td></td>
    Dim dtTime As DateTime = #6:00:00 AM#

    For Each row As DataRow In dt.Rows
        For Each column In dt.Columns
            dtTime = dtTime.AddMinutes(30) 
            td.Value = dtTime.ToString() + " " row(column.Ordinal).ToString()
            tr.Add(td)
        Next

        table.Add(tr)
    Next
    Return table
End Function

在您的 .aspx 页面中使用它会呈现 Table

    <%= DrawTable()%>