我用谷歌搜索了这个并没有找到我需要的东西。我发现的所有现有解决方案都说将“可见性”设置为假。这似乎对我不起作用,因为我的应用程序呈现的PDF只是“隐藏”了DIV并在其中留下了一个很大的空白区域。
相反,我想根本不渲染HTML。例如,在PHP中,这可以简单地完成:
<?php if ($showDiv == true) { ?>
<div>Lorem ipsum dolor sit amet</div>
<?php } ?>
在ASP.NET MVC中,我可以简单地传递一个ViewBag变量并执行相同的操作。
ASP.NET(C#)中的解决方案是什么?
答案 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>";