Я ищу элегантное решение для удаления контента со страницы ASP.Net, если данные не были установлены. Позвольте мне объяснить это немного подробнее.
У меня есть несколько блоков данных на странице, которые содержат некоторые подразделы с отдельными значениями в них. Если для одного из значений не было задано никаких данных, мне нужно его скрыть (чтобы оно не занимало место). Кроме того, если ни одно из значений в подразделе не было установлено, его также необходимо скрыть. Наконец, если ни один из подразделов не виден внутри блока / панели, тогда мне нужно скрыть все это.
Макет реализован с использованием вложенных панелей / DIVs
<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.
Любая помощь очень ценится.
EDIT:
Хорошо, что делает это сложным, так это то, что внутри подразделов могут быть другие элементы управления, которые не учитывают скрытие и отображение элементов управления. И каждая панель значение потенциально может содержать элементы управления, которые не влияют на то, отображается она или нет. Пример:
<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>
Это слишком упрощенный пример, но не далеко от того, о чем я должен беспокоиться.