2013-01-05 39 views
0

我使用生成的代碼表一個非常簡單的代碼上做asp.net的練習:性質代碼表建在asp.net

protected void btnAceptar_Click(object sender, EventArgs e) 
    { 
     tblGenerar.Controls.Clear();    

     for(int i = 0; i < Convert.ToInt32(txtRows.Text);i++) 
     { 
      TableRow rowNew = new TableRow(); 
      tblGenerar.Rows.Add(rowNew); 

      for (int j = 0; j < Convert.ToInt32(txtCols.Text);j++) 
      { 
       TableCell cellNew = new TableCell(); 
       rowNew.Cells.Add(cellNew); 
       cellNew.Text = txtTexto.Text; 

       if (chkMargen.Checked == true) 
       { 
        cellNew.BorderStyle = BorderStyle.Inset; 
        cellNew.BorderWidth = 1; 
       } 
      } 
     } 
    } 

我第一次選擇在表上創建邊界,它可以工作,但下一次我選擇生成沒有邊框的表格時,最後生成的表格的邊框仍然存在。其他單元格顯示爲無邊框。

爲什麼會發生這種情況,如果我使用Controls.Clear(),我該如何解決它?
謝謝。

回答

0

將其他條件放入代碼中。

 else 
     { 
      cellNew.BorderStyle = BorderStyle.None; 
      cellNew.BorderWidth = 0; 
     } 

,或者你可以這樣做以下。

cellNew.BorderStyle = BorderStyle.None; 
        if (chkMargen.Checked == true) 
        { 
         cellNew.BorderStyle = BorderStyle.Inset; 
         cellNew.BorderWidth = 1; 
        } 

然後你就完成了。

這是因爲一旦生成了表格,就無法對其應用更改,因此需要先顯式刪除邊框,然後應用複選框。

+0

嗨,感謝您的回覆,我知道,但如果事件首先發生在頁面呈現中,爲什麼asp會保留舊代碼?再次感謝。 –

+0

查看更新的答案。 –

+0

非常感謝!我希望代碼在每次回滾時從0重建。 –