C# asp.net中代码生成表中的属性
我正在asp.net上做一个练习,使用代码生成的表和一个非常简单的代码:C# asp.net中代码生成表中的属性,c#,asp.net,C#,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 r
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;
}
}
}
}
受保护的无效btnAceptar\u单击(对象发送方,事件参数e)
{
tblgenear.Controls.Clear();
for(int i=0;i
第一次选择在表上创建边框时,它可以工作,但下一次选择生成不带边框的表时,上次生成的表的边框仍然存在。显示没有边框的其他单元格
如果我使用Controls.Clear(),为什么会发生这种情况?我如何解决它?谢谢。在代码中添加else条件
else
{
cellNew.BorderStyle = BorderStyle.None;
cellNew.BorderWidth = 0;
}
或者你也可以做如下的事情
cellNew.BorderStyle = BorderStyle.None;
if (chkMargen.Checked == true)
{
cellNew.BorderStyle = BorderStyle.Inset;
cellNew.BorderWidth = 1;
}
你就完了
这是因为一旦生成表,您就无法对其应用更改,为此,您需要先显式删除边框,然后在选中复选框时应用。您好,感谢您的回复,我知道,但是如果事件发生在页面呈现之前,asp为什么要保留旧代码?再次感谢,非常感谢!我认为代码是在每次回滚时从0重新生成的。