ASP.NET Show Div Conditional

时间:2013-01-23 20:51:34

标签: c# asp.net webforms

我用谷歌搜索了这个并没有找到我需要的东西。我发现的所有现有解决方案都说将“可见性”设置为假。这似乎对我不起作用,因为我的应用程序呈现的PDF只是“隐藏”了DIV并在其中留下了一个很大的空白区域。

相反,我想根本不渲染HTML。例如,在PHP中,这可以简单地完成:

<?php if ($showDiv == true) { ?>
<div>Lorem ipsum dolor sit amet</div>
<?php } ?>

在ASP.NET MVC中,我可以简单地传递一个ViewBag变量并执行相同的操作。

ASP.NET(C#)中的解决方案是什么?

6 个答案:

答案 0 :(得分:10)

<% if ( showDiv ) { %>
<div></div>
<% } %>

其中showDiv将成为您后面代码中的受保护属性。

答案 1 :(得分:9)

在aspx文件中

<div runat="server" id="hideableDiv">Lorem ipsum dolor sit amet</div>

背后的代码中
...
hideableDiv.Visible = false;
...

答案 2 :(得分:3)

使用<asp:panel>控件,该控件呈现为HTML <div>。然后,您可以切换可见性。如果visible设置为false,则asp.net不会呈现任何内容。

    <asp:Panel id="MyPanel" runat="server">
    ...
    </asp:Panel>

   MyPanel.Visible = false;

答案 3 :(得分:2)

标记

<div runat="server" id="myPdfDiv">Lorem ipsum dolor sit amet</div>

代码隐藏

myPdfDiv.Visible = false;
myPdfDiv.InnerHTML = "";

答案 4 :(得分:2)

是的,您可以将div放在ASP PlaceHolder控件中:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.placeholder(v=vs.71).aspx

<asp:PlaceHolder id="PlaceHolder1" runat="server">
<div></div>
</asp:PlaceHolder>

然后在代码隐藏中你可以这样设置它:

PlaceHolder1.Visible = true;

答案 5 :(得分:2)

另一种不会产生任何HTML的解决方案:

<强> HTML

<asp:Literal ID ="litDiv" runat="server">       
</asp:Literal>

代码背后:

bool showDiv = true;
if (showDiv)
    this.litDiv.Text = "<div>Lorem ipsum dolor sit amet</div>";