C# 如何替换整个ASP控件
我想在C# 如何替换整个ASP控件,c#,asp.net,C#,Asp.net,我想在表控件中显示大量数据,但将代码放在一个库方法中,该库方法返回一个新表对象。当我将该对象直接指定给ASP页上的控件时,数据不会显示 库方法如下所示: public Table CreateTable(...) { Table tbl = new Table(); ... // adding lots of cells and setting lots of properties ... return tbl; } ASP页面有一个表控件: <asp:Co
表
控件中显示大量数据,但将代码放在一个库方法中,该库方法返回一个新表
对象。当我将该对象直接指定给ASP页上的控件时,数据不会显示
库方法如下所示:
public Table CreateTable(...)
{
Table tbl = new Table();
...
// adding lots of cells and setting lots of properties
...
return tbl;
}
ASP页面有一个表
控件:
<asp:Content ID= ... >
<asp:Table ID="Table_Data" runat="server">
</asp:Table>
</asp:Content>
但测试时,表控件显示为空
这一原则通过以下方式发挥作用:
Table NewTable = Lib.CreateTable(...);
PlaceHolder1.Controls.Add(NewTable);
但在我的asp页面中似乎不需要占位符。
还是这样
感谢您的帮助
更新: 作为公认的答案,解决方案是保留占位符,但不是
,而是在我想要表格的确切位置保留一个新的占位符控件:
<asp:PlaceHolder ID="PlaceHolder_Table" runat="server">
</asp:PlaceHolder>
简单,效果很好。
<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(...));
}
受保护的无效按钮\u单击(对象发送者,事件参数e)
{
contId.Controls.Clear();
contId.Controls.Add(Lib.CreateTable(…);
}
asp.net表格控件不应该这样工作。您很可能正在查找GridView控件。它用于获取数据、将数据绑定到Gridview并显示数据
asp.net表格控件信息为。它更多的是一种格式,而不是用于加载数据,这就是为什么您不能将数据绑定到它。我们无法调试它,您需要这样做。
Lib.CreateTable()
确实返回了有用的东西吗?Lib方法工作得很好。但我想直接替换控件并不是那么明显。我读了一些关于Render
调用的文章,但那是关于整个页面的。我只是在某个地方读到,我可以在页面上的任何位置添加占位符,所以这是一个很棒的解决方案!比我担心的要简单。哦,天哪,我(不)多么喜欢这些可以运行服务器代码的代码片段。。。
PlaceHolder_Table.Controls.Add(Lib.CreateTable(...));
<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(...));
}