现在我有一个ASP表。我可以在这个表中添加行和单元格。我想做的是,而不是只显示文本的单元格,我想添加一个控件。例如一个Button。
现在,我第一次想到如何执行此操作只是将<ASP:Button ...
作为表格单元格的.Ttext
属性。但我的直觉告诉我这不行。此外,我可能无法添加一个函数来处理按钮单击。
有人可以帮助我指出如何实现这个目标的正确方向吗?
答案 0 :(得分:5)
您需要将控件添加到表格单元格。只需在单元格上调用Controls.Add方法并添加您的控件即可。下面是一个简短的草图,应该指出你正确的方向。
Button b = new Button();
c.Controls.Add(b);
答案 1 :(得分:2)
以下假设您有一个空白的ASP:页面上有一些已定义的行(仅用于显示)。
protected void Page_Init(object sender, EventArgs e)
{
foreach (TableRow row in this.Table1.Rows)
{
foreach (TableCell cell in row.Cells)
{
Button btn = new Button();
btn.Text = "Some Button";
btn.Click += new EventHandler(btn_Click);
cell.Controls.Add(btn);
}
}
}
void btn_Click(object sender, EventArgs e)
{
((Button)sender).Text = "Just Clicked";
}
答案 2 :(得分:0)
问题依赖于控件的来源。尽管如此,即使您的数据源只是Enumerable.Range()
函数,最有效的方法是data binding。
如果失败,您需要创建控件的实例并将它们添加到Control所属的表单元格的集合中。您可以使用+=
语法添加事件处理程序。这里的诀窍是创建和添加按钮的代码需要在每个回发上再次运行,并且需要在 asp的page_load阶段之前运行。净生命周期。