2013-01-23 36 views
2

我已經使用了這個,並沒有找到我所需要的。我發現的所有現有解決方案都將「可見性」設置爲錯誤。這對我來說似乎不起作用,因爲我的應用程序呈現的只是「隱藏」DIV並在其位置留下一個大的空白區域的PDF。ASP.NET有條件地顯示Div

相反,我想不呈現HTML。例如,在PHP中,可以這樣做簡單,如:

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

在ASP.NET MVC,我可以簡單地通過一個ViewBag變量,做同樣的事情。

ASP.NET(C#)中的解決方案是什麼?

回答

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

其中showDiv將代碼中的財產保護落後。

+1

VB解決方案:<%if(showDiv)then%>

<% End If %> – Alexandre

8

在aspx文件

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

而且在後面的代碼

... 
hideableDiv.Visible = false; 
... 
+0

對不起,墊子。這是我已經試圖解釋的不適合我的。它只是在我的PDF中呈現一個大的空白空間。你看,它似乎只是簡單地設置「display:none」,而我不希望元素在代碼中。有沒有另一種方法來做到這一點? – user1477388

+0

@ user1477388這將是很好的你張貼你嘗試過的代碼。 – Daniel

+4

@ user1477388設置「Visible = false」不會渲染元素。 – Magnus

3

使用<asp:panel>控件,該控件呈現爲HTML <div>。然後您可以切換可見性。如果visible設置爲false,則asp.net將不呈現任何內容。

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

    MyPanel.Visible = false; 
2

的標記

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

代碼隱藏

myPdfDiv.Visible = false; 
myPdfDiv.InnerHTML = ""; 
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>";