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()%>
有人可以帮我修改此代码,因为我尝试 运行 但 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()%>