<asp:ContentPlaceHolder>
以编程方式设置内容的最简单方法是什么?我想生病必须Master.FindControl
打电话?
Anders
问问题
7734 次
3 回答
4
如果您的页面继承自 MasterPage,那么您的页面上应该有一个带有一些 id 的 asp:Content 控件,如下所示:
<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="masterContent">
</asp:Content>
您应该能够在您的代码隐藏中引用它并添加您想要的任何内容。
public void Page_Load( object sender, EventArgs e )
{
HtmlContainerControl div = new HtmlGenericControl( "DIV" );
div.innerHTML = "....whatever...";
myContent.Controls.Clear();
myContent.Controls.Add(div);
}
于 2008-11-15T04:08:48.323 回答
0
我使用自定义扩展方法递归搜索控件(例如占位符)以通过 Id 查找您要查找的控件并返回它。然后,您可以根据需要填充返回的控件。在遍历要填充的控件列表的 foreach 循环中调用它。
public static class ControlExtensions
{
/// <summary>
/// recursive control search (extension method)
/// </summary>
public static Control FindControl(this Control control, string Id, ref Control found)
{
if (control.ID == Id)
{
found = control;
}
else
{
if (control.FindControl(Id) != null)
{
found = control.FindControl(Id);
return found;
}
else
{
foreach (Control c in control.Controls)
{
if (found == null)
c.FindControl(Id, ref found);
else
break;
}
}
}
return found;
}
}
于 2008-11-15T09:07:02.293 回答
0
如果要向空白页添加控件,则执行 Page.Controls.Add()....不是吗?
于 2008-11-14T19:06:41.257 回答