【发布时间】:2008-11-06 15:40:07
【问题描述】:
如果没有设置数据,我正在寻找一种优雅的解决方案,用于从 ASP.Net 页面中删除内容。让我再解释一下。
我在一个页面上有一些数据块,其中包含一些带有单独值的子部分。如果没有为其中一个值设置数据,我需要隐藏它(这样它就不会占用空间)。此外,如果没有设置子部分中的任何值,则也需要将其隐藏。最后,如果块/面板中没有任何子部分可见,那么我需要隐藏整个内容。
使用嵌套面板/DIV 实现布局
<Panel id="block">
<Panel id="sub1">
<Panel id="value1-1">blah</Panel>
<Panel id="value1-2">blah</Panel>
</Panel>
<Panel id="sub2">
<Panel id="value2-1">blah</Panel>
<Panel id="value2-2">blah</Panel>
</Panel>
</panel>
我想知道是否有人在不编写一堆嵌套的 If..Else 语句并且不创建一堆自定义控件的情况下实现这样的事情有任何体面的想法。无论我实现什么,都需要足够健壮以处理标记中的变化,而无需不断地操纵代码隐藏。
我希望有一种方法可以通过一些简单的标记更改(自定义属性)和对 PageLoad 或 PreRender 的递归函数调用来做到这一点。
非常感谢任何帮助。
编辑:
好吧,让这件事变得棘手的是子部分中可能还有其他控件,这些控件不影响控件的隐藏和显示。并且每个 value 面板都可能包含不影响是否显示的控件。示例:
<Panel id="sub2">
<Image id="someImage" src="img.png" />
<Panel id="value2-1">
<Label>blah</Label>
<TextBox id="txtValue" />
</Panel>
<Panel id="value2-2">blah</Panel>
</Panel>
这是一个过于简化的示例,但与我需要担心的相差不远。
【问题讨论】:
标签: .net asp.net controls user-interface