有条件地在ASP.NET WebForms中排除一个html块

dev*_*os1 25 html asp.net webforms

这只是一个简单的问题:如何根据服务器端评估从服务器返回的aspx Web表单中排除一段html?

我不是特别谈论控件,因为它们往往具有Visible参数,而只是一些原始html.

Jos*_*rke 59

有些人反对以下方法但是没有人回答的方法,我觉得它应该作为一个选项显示.如果使用得当,它可以很方便.

<% if (ShowLabel) {%>
<label>This will not be shown if the ShowLabel property evaluates false</label>
<%}%>
Run Code Online (Sandbox Code Playgroud)

要使这项工作,你的页面上会有一个名为ShowLabel的public或protected属性,它返回一个布尔值.

  • 在某些情况下,这甚至是唯一可能的解决方案。例如,如果你想有条件地隐藏 &lt;script&gt; 标签,当你使用带有 `ID` 的 `runat="server"` 在代码隐藏文件中将其可见性设置为 false 时,这是不可能的。 (2认同)

byt*_*der 12

<div id="divYourDiv" runat="server">
    your stuff goes here...
</div>

//Server side code...
public void ShowYourDiv(bool visible)
{
    this.divYourDiv.Visible = visible;
}
Run Code Online (Sandbox Code Playgroud)

  • 确保设置runat ="server" (4认同)

Guf*_*ffa 8

PlaceHolder对代码进行控制.它不会为自己呈现任何代码(例如Panel,例如),因此它在可见时不会干扰html代码.

如果将Visible属性设置PlaceHolder为false,PlaceHolder则不会将页面内的代码呈现给页面.