如何在使用VB.NET的Web DataGrid中每次使用后清除HTML表?

时间:2013-03-06 11:39:21

标签: asp.net vb.net datagrid

我想使用下面的代码在表格中显示查询结果。

我的问题是在DataGrid的第2行显示第1行和第2行的查询结果。类似地,在第3行中显示第1行第2行和第3行的结果,依此类推。

有人能告诉我如何在DataGrid的第二行显示第二行的查询等等吗?

有没有办法在一行填满后清除表格?

For Each d In DataGrid1.Items
   htbl = d.FindControl("Table1") 
   sql = "select username, count(*) as cnt from elexa where  r_id='" & d.Cells.Item(0).Text & "'  group by username order by cnt desc"
   cmd = New SqlCommand(sql, conn)
   adp=new SqlDataAdapter(cmd)
   adp.Fill(ds,"elexa")
   tbl = ds.Tables("elexa")
   tbl = ds.Tables("elexa")
   cnt = tbl.Rows.Count

   For i = 0 To cnt - 3

    Dim hRw As New HtmlTableRow
    Dim hRw2 As New HtmlTableRow

    For j = 0 To 2
      Dim hCll As New HtmlTableCell
      Dim hcll2 As New HtmlTableCell
      hCll.InnerHtml ="<font size=2>" & ds.Tables("elexa").Rows(i).Item("username") & "</font>"
      hRw.Controls.Add(hCll)
      i = i + 1
      hCll = New HtmlTableCell 
    Next j

 htbl.Controls.Add(hRw)
 hRw2.BgColor =  "silver"        
 hRw2.Height = "1px"

 Next

Next d

2 个答案:

答案 0 :(得分:0)

我认为之前选择的结果会保留在数据集ds中。 因此,第一个选择得到一个结果,第二个得到两个,第三个得到三个,依此类推。

您可以将id附加到表名"elexa" + d.Cells.Item(0).Text或为每个请求创建一个新数据集。

所以你可以改变

adp.Fill(ds,"elexa")
tbl = ds.Tables("elexa")
tbl = ds.Tables("elexa")

apd.Fill(ds, "elexa" + d.Cells.Item(0).Text)
tbl = ds.Tables("elexa" + d.Cells.Item(0).Text)

像这样,你为每一行创建一个新表,而不必以某种方式清除它。

答案 1 :(得分:0)

通过在每行之后创建新数据集

,我得到了所需的结果