现在我有一个ASP表格,我可以很好地向该表格添加行和单元格。我想要做的是,不要让单元格仅显示文本,而是添加一个控件,例如按钮。
我的第一想法是将请问有人能帮助我指出如何实现这一点吗?
我的第一想法是将请问有人能帮助我指出如何实现这一点吗?
您需要将控件添加到表格单元格中。只需在单元格上调用Controls.Add方法并添加您的控件即可。下面是一个简短的草图,应该可以指引您正确的方向。
Button b = new Button();
c.Controls.Add(b);
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";
}
System.Web.UI.WebControls.Button
,但它似乎没有 .Click
属性。我是否创建了错误类型的按钮? - user489041问题在于您的控件源是什么。到目前为止,最有效的方法是通过数据绑定来实现,即使您的数据源只是Enumerable.Range()
函数。
如果失败了,您需要创建一个控件实例并将其添加到它们所属的表单单元格的控件集合中。您可以使用+=
语法添加事件处理程序。这里的诀窍是,创建和添加按钮的代码需要在每个回发上再次运行,并且需要在 asp.net 生命周期的 page_load 阶段之前运行。