我在page_Init
事件中创建了一个动态表。如何在Click事件处理程序中访问该表?目前,在单击事件处理程序中无法访问它。实际上我需要遍历动态创建的表,以便在该表中添加其他动态控件。
答案 0 :(得分:0)
在您的页面中声明私有局部变量,例如_table As...
。
然后,在Page_Init中,使用这些变量_table = New...
。
您稍后可以在页面生命周期中使用_table
。
答案 1 :(得分:0)
您可以通过ID
访问它,因此会分配一个唯一ID(在他的NamingContainer
中)。
on aspx:
<asp:Panel id="TableContainer"
HorizontalAlign="Center"
runat="server">
<!-- put your table(s) here -->
</asp:Panel>
protected void Page_Init(Object sender, EventArgs e)
{
var table1 = new Table();
table1.ID = "Table1";
for(int rowCtr = 1; rowCtr <= 10; rowCtr++) {
// Create new row and add it to the table.
TableRow tRow = new TableRow();
table1.Rows.Add(tRow);
for (int cellCtr = 1; cellCtr <= 10; cellCtr++) {
// Create a new cell and add it to the row.
TableCell tCell = new TableCell();
tCell.Text = "Row " + rowCtr + ", Cell " + cellCtr;
tRow.Cells.Add(tCell);
}
}
TableContainer.Controls.Add(table1);
}
然后您可以稍后在按钮单击事件中访问它:
protected void button1_Clicked(Object sender, EventArgs e)
{
Table table1 = (Table) TableContainer.FindControl("Table1");
}
但是,您应该考虑使用像Repeater
或GridView
这样的webdatabound控件。