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

时间:2016-10-12 03:10:24

标签: xml vb.net sql-server-2005

有人可以帮我修改这段代码,因为我试过跑,但桌子没有出现在页面上。我是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>

1 个答案:

答案 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()%>