有人可以帮我修改这段代码,因为我试过跑,但桌子没有出现在页面上。我是XML的新手,有人给了我这个片段,说XML编码对于表来说更可靠。
代码可能有效,但我不知道如何将其显示到页面。我试过搜索,但我看到很多人也做了几乎相同的事情,但为什么它对我不起作用?虽然,其他一些人制作了另一个xml文件来保存数据,但就我而言,我实际上计划从MS SQL 2005数据库中检索数据并将其显示在表格中。我在这里失踪了什么?
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:30 amddd(1,1)8.00am eeee(1,2)8.30am ffff
剩下的当天时间表
=========================================== 修改后
我的计划是显示表格,同时,当用户点击可用时间(空闲/未被占用)时,用户将能够请求该特定时间的预约,从而插入数据库查询将被执行
我按照你的建议做了。我还重新安排了循环,以便列循环位于外部,行循环位于内部。我这样做是为了使数据只显示一次,而不是每个新行中每个新列的重复。我编辑了如下所示的代码,因此您很容易理解我的所作所为。
你的时间增量对我没有用,所以我尝试修改了一下,这个有用了。但问题是第一行第一列显示的时间是循环中最后一次迭代的时间(即上午11:00:00 - 因为我查询了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 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>
答案 0 :(得分:0)
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页面中使用它将呈现表
<%= DrawTable()%>