如果没有innerHtml,隐藏子html元素

本文关键字:html 元素 隐藏 innerHtml 如果没有 | 更新日期: 2023-09-27 18:17:57

我试图创建一个c#函数,该函数将隐藏所有没有innerhtml的子元素,用于传递的html控件。有人能给我指个正确的方向吗?不知道从哪里开始。

我正在使用asp.net 4。这是我的html结构的一个例子。

<div id="officeInfo" runat="server">
    <h2><%= mlaLocationDTO.Name %></h2>
    <p><%= mlaLocationDTO.Address.Street1 %></p>
    <p><%= mlaLocationDTO.Address.Street2 %></p>
    <p>Tel:<%= mlaLocationDTO.Phone %></p>
    <p>Fax:<%= mlaLocationDTO.Fax %></p>
    <p>Email:<%= mlaLocationDTO.Email %></p>
    <a href="#">Get Directions</a>
    <a href="#">Submit Your Resume</a>
</div>

和我的psuedo函数…

protected void HideHtmlElementsWhenEmpty(Control element)
{
    foreach (Control c in element.Controls) maybe there's a better way than to use a loop
    {
        if(c.innerHtml != null) //not sure what to do here 
        {
            c.Visible = false;
        }
    }
}

谢谢!

如果没有innerHtml,隐藏子html元素

有条件地输出HTML标签:

<%= String.IsNullOrEmpty(mlaLocationDTO.Address.Street1) 
    ? ""
    : "<p>" + mlaLocationDTO.Address.Street1 + "</p>" %>

哦,不要忘记正确编码您的数据库输出:Street1可能包含<或其他不适合html的字符,我们不想冒任何脚本注入的风险…

<%= String.IsNullOrEmpty(mlaLocationDTO.Address.Street1)
    ? ""
    : "<p>" + Server.HtmlEncode(mlaLocationDTO.Address.Street1) + "</p>" %>