使用类似这样的内容来显示/隐藏某些标记:
<asp:Panel runat="server" ID="MyPanel">
<li>...</li>
<li>...</li>
...
</asp:Panel>
它呈现为:
<div>
<li>...</li>
<li>...</li>
...
</div>
现在我希望能够显示/隐藏MyPanel
服务器端,但不希望渲染周围的div
。
我可以做类似的事情:
<% if (MyCondition) { %>
<li>...</li>
<li>...</li>
...
<% } %>
但这看起来很混乱。
或者我可以做类似的事情:
<li runat="server" ID="C1">...</li>
<li runat="server" ID="C2">...</li>
...
但是这需要所有“root”控件都有runat=server
属性,这会产生大量代码并且看起来也很混乱。
我的问题:
有没有办法告诉Panel
控件本身不产生任何标记?或者是否有另一个控件用于我的目的?
答案 0 :(得分:2)
我最终使用了Literal
control。
通过这种控制,我可以写出类似的东西:
<ul>
<li>1</li>
<li>2</li>
<asp:Literal runat="server" Visible="false">
<li>3</li>
<li>4</li>
</asp:Literal>
<li>5</li>
</ul>
结果如下:
<ul>
<li>1</li>
<li>2</li>
<li>5</li>
</ul>
我也可以这样写:
<ul>
<li>1</li>
<li>2</li>
<asp:Literal runat="server" Visible="true">
<li>3</li>
<li>4</li>
</asp:Literal>
<li>5</li>
</ul>
导致类似这样的事情:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
所以这正是我想要的:一个服务器控件,它允许我显示/隐藏多个HTML标记标记,而不会渲染任何额外的标记。
答案 1 :(得分:1)
如果您不希望为Panel生成div,那么您可以创建ul runat服务器并为此控件分配一些id并显示隐藏它后面的代码中的可见属性。
Host bitbucket
HostName bitbucket.org
ProxyCommand ssh user@ssh-host nc %h %p
面板允许通过div实际实现的滚动条不会直接使用ul。