gpt4 book ai didi

c# - 如何检查 ContentPlaceHolder 是否为空?

转载 作者:太空狗 更新时间:2023-10-29 19:39:23 24 4
gpt4 key购买 nike

如何检查 ContentPlaceHolder 是否绝对为空?

在 ContentPlaceHolder 中只有文本,没有标签和控件。

示例 Page.Master:

<asp:ContentPlaceHolder runat="server" ID="Content" />

示例测试.aspx:

<asp:Content runat="server" ContentPlaceHolderID="Content">
Custom text without controls. Content.Controls.Count is 0 and Content.HasControls is false.
</asp:Content>

我需要做的是,当占位符为空时,将默认内容放在另一个控件中。

为同一个占位符尝试覆盖两次,但在动态加载时出现错误。

最佳答案

您可以实现一种将内容控件呈现为字符串的方法,然后检查该字符串以查找它是否包含任何非空白字符:

private bool HasContent(Control ctrl)
{
var sb = new System.Text.StringBuilder();
using (var sw = new System.IO.StringWriter(sb))
{
using(var tw = new HtmlTextWriter(sw))
{
ctrl.RenderControl(tw);
}
}

var output = sb.ToString().Trim();

return !String.IsNullOrEmpty(output);
}

protected void Page_PreRender(object sender, EventArgs e)
{
var placeholder = Master.FindControl("FeaturedContent");
var hasContent = HasContent(placeholder);
}

关于c# - 如何检查 ContentPlaceHolder 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com