2016-05-20 104 views
0

我正在使用asp.net c#,我想從數據庫生成文本框。我的表中有4條記錄,所以我想在運行時使用4個文本框。 但我在登記時只收到一個文本框Insepct Element我收到4個文本框,但它沒有顯示在我的頁面上。ASP.NET C#如何生成動態控制

不確定它出錯的地方。

我用這樣的代碼

OracleConnection obj_Conn = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString()); 
    Table table = new Table(); 
    table.ID = "table1"; 
    string Query = "SELECT * FROM XXCUS.MASTER_VERIFICATION"; 
    OracleDataAdapter da = new OracleDataAdapter(Query, obj_Conn); 
    //DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    var Count = dt.Rows.Count; 
    if (Count > 0) 
    { 
     TableRow row = new TableRow(); 
     TextBox txt = new TextBox(); 
     for (int i = 0; i < Count; i++) 
     { 
      TableCell cell = new TableCell(); 
      txt.ID = "txt" + i.ToString(); 
      cell.ID = "cell" + i.ToString(); 

      cell.Controls.Add(txt); 

      row.Cells.Add(cell); 
     } 
     table.Rows.Add(row); 
     dvGenerateCntrl.Controls.Add(table); 
    } 

,並調用頁面加載這個方法

回答

1

首先調試線你的代碼,並確保你的datatable中有4行並使用這段代碼。

OracleConnection obj_Conn = new `OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["oracleConn"].ToString());` 
    Table table = new Table(); 
    table.ID = "table1"; 
    string Query = "SELECT * FROM XXCUS.MASTER_VERIFICATION"; 
    OracleDataAdapter da = new OracleDataAdapter(Query, obj_Conn); 
    //DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    var Count = dt.Rows.Count; 
    if (Count > 0) 
    { 
     TableRow row = new TableRow(); 
     TextBox txt = new TextBox(); 
     for (int i = 0; i < Count; i++) 
     { 
TextBox txt = new TextBox();    
TableCell cell = new TableCell(); 
      txt.ID = "txt" + i.ToString(); 
      cell.ID = "cell" + i.ToString(); 

      cell.Controls.Add(txt); 

      row.Cells.Add(cell); 
     } 
     table.Rows.Add(row); 
     dvGenerateCntrl.Controls.Add(table); 
    } 

在您的代碼中,您不會每次創建TextBox的對象。 我認爲它會幫助你。

2

把其申報新的TextBoxfor循環

for (int i = 0; i < Count; i++) 
    { 
     TextBox txt = new TextBox(); 
     TableCell cell = new TableCell(); 
     txt.ID = "txt" + i.ToString(); 
     cell.ID = "cell" + i.ToString(); 

     cell.Controls.Add(txt); 

     row.Cells.Add(cell); 
    }