我想在Table
控件中显示大量数据,但是将代码放在一个返回new Table
对象的库方法中。当我将该对象直接分配给ASP页面上的控件时,数据不会显示。
库方法如下所示:
public Table CreateTable(...)
{
Table tbl = new Table();
...
// adding lots of cells and setting lots of properties
...
return tbl;
}
ASP页面有一个Table
控件:
<asp:Content ID= ... >
<asp:Table ID="Table_Data" runat="server">
</asp:Table>
</asp:Content>
在Table-Behind Table控件中分配了新的Table
对象:
protected void Button_Click(object sender, EventArgs e)
{
Table_Data = Lib.CreateTable(...);
}
但是在测试时,Table控件显示为空。
这个原则是有效的:
Table NewTable = Lib.CreateTable(...);
PlaceHolder1.Controls.Add(NewTable);
但似乎不需要在我的asp页面中安装PlaceHolder。 或者是吗?
感谢任何帮助!
更新
作为接受的答案,解决方案是保留PlaceHolder,但不是<asp:Content>
,而是将新的PlaceHolder控件放在我想要表格的确切位置:
<asp:PlaceHolder ID="PlaceHolder_Table" runat="server">
</asp:PlaceHolder>
并在Code Behind中:
PlaceHolder_Table.Controls.Add(Lib.CreateTable(...));
简单,效果很好。
答案 0 :(得分:2)
<asp:Content ID="contId" >
<asp:Table ID="Table_Data" runat="server">
</asp:Table>
</asp:Content>
protected void Button_Click(object sender, EventArgs e)
{
contId.Controls.Clear();
contId.Controls.Add(Lib.CreateTable(...));
}
答案 1 :(得分:-1)