我想动态创建一个带有标签的表格,并通过按钮点击
更改表格上的标签我可以动态地为表格提供不同的标签但是我无法更改表格中的标签
这是我的代码:
的.cs
protected ovverride void createchildcontrol()
{
table1.border=1;
}
int counter=1;
for (int i = 1; i <= 8; i++)
{
row = new htmltablerow();
for (int j = 1; j <= 5; j++)
{
label = new label() { id = "label" + counter.tostring() };
cell = new htmltablecell();
cell.innertext = label.text = "label" + counter.tostring();
row.cells.add(cell);
counter++;
}
table1.row.add(row);
}
counter = 1;
cell.controls.add(label);
this.controls.add(table1);
}
我的按钮代码
protected void button1_click(object sender, eventargs e)
{
label find = cell.findcontrol("label1") as label;
find.text = "changed";
}
我在另一页上有一个div id="placeholder" runatserver="server"
我真的需要在生成的HTML表格上访问标签。
答案 0 :(得分:0)
您需要在pre_init
事件上重新创建表格。只有这样它才能起作用。
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
//recreate your table here
}
您也可以在Page Load事件中添加控件动态控件。但在这种情况下,对手的状态不能在PostBacks中持续存在。因此,在加载视图状态之前,动态添加的控件应存在于页面控制层次结构中。因此,在Init事件中创建控件会使控件在层次结构中可用,以便它可以持久化ViewState。