2010-03-03 61 views
0

我希望我已經正確地提出了問題標題。讓我解釋我的問題 - 我正在通過vb.net代碼(htmltablecell,htmltablerow ..)沒有這個表填充SQL查詢和完美的作品。但在一個表格的表格裏面,我需要添加一個下拉列表,它需要一個完全不同的查詢,並且應該在每行上自行運行。因此代碼如下在vb.net的數據讀取器中添加一個數據集

的Sql = 「...」 RD =的ExecuteReader(SqlCnn,SQL)

 Dim newcounter As Integer = 0 
     While rd.Read() 
      newcounter += 1 
      Dim tr As New HtmlTableRow 
      Dim td As New HtmlTableCell 
      Dim chkbox As New CheckBox 
      Dim id As String = rd("id") & "" 
      If id.Length = 0 Then id = "new" & newcounter 
      id &= "_" & rd("col1") 
      chkbox.Style.Add("width", "20%") 
      chkbox.ID = "new_id_" & id 
      chkbox.Text = rd("col1") 

      tr.Style.Add("width", "100%") 
      td.Style.Add("width", "10%") 
      td.Style.Add("text-align", "left") 
      td.Controls.Add(chkbox) 
      tr.Cells.Add(td) 

      td = New HtmlTableCell 
      td.Style.Add("width", "30%") 
      Dim ddl As New dropdownlist 
      ddl.Style.Add("width", "80%") 
      ddl.ID = "a1_" & id 
      --??????? 
      td.Controls.Add(ddl) 
      tr.Cells.Add(td) 

的???在代碼中,下拉列表應該每次使用其自己的數據讀取器以及while循環和查詢來填充。我怎麼能做到這一點?

+0

表中的每一行都有它自己的(對於該行是唯一的)其下拉列表中的一組選項? – RKitson

+0

以及下拉應具有來自1個查詢的值,因此每行應具有相同數據的下拉列表,但是具有其自己的ddl id – reget

回答

0

我會用2個查詢來做到這一點; 1獲取ddl數據,1獲取實際記錄。在實際結果之前獲取ddl數據(ddlDataReader),創建ddl對象並將其添加到每一行。

像這樣的東西應該工作:(我不這樣做VB.Net,所以你可能需要解決的事情)

Dim ddl As New dropdownlist 
     ddl.Style.Add("width", "80%") 
     ddl.ID = "a1_" & id 
    While ddlDataReader.Read() 
     ---add items to ddl 
    end 


    Dim newcounter As Integer = 0 
    While rd.Read() 
     newcounter += 1 
     Dim tr As New HtmlTableRow 
     Dim td As New HtmlTableCell 
     Dim chkbox As New CheckBox 
     Dim id As String = rd("id") & "" 
     If id.Length = 0 Then id = "new" & newcounter 
     id &= "_" & rd("col1") 
     chkbox.Style.Add("width", "20%") 
     chkbox.ID = "new_id_" & id 
     chkbox.Text = rd("col1") 

     tr.Style.Add("width", "100%") 
     td.Style.Add("width", "10%") 
     td.Style.Add("text-align", "left") 
     td.Controls.Add(chkbox) 
     tr.Cells.Add(td) 

     td = New HtmlTableCell 
     td.Style.Add("width", "30%") 
     td.Controls.Add(ddl) 
     tr.Cells.Add(td) 

另一種方法是將DDL數據加載到一個DataTable,使您可以循環多次,然後在創建每行時使用唯一ID創建ddl。