0

我正在使用带有非常简单代码的代码生成表在 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() 为什么会发生这种情况,我该如何解决?
谢谢。

4

1 回答 1

0

将 else 条件放在您的代码中。

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

或者您可以执行以下操作。

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

你完成了。

这是因为一旦生成了表格,您就无法对其应用更改,为此您需要先显式删除边框,然后在选中复选框时应用。

于 2013-01-05T02:08:06.630 回答