Условная разметка в aspx

У меня есть ListView. Если я хочу основывать разметку html на условии в отношении элемента с привязкой к данным, как лучше всего это сделать?

Я имею в виду, есть ли какой-либо другой способ, кроме размещения блоков ‹% %> if/else непосредственно в разметке?

Я знаю, что действительно некрасивый способ сделать это - поместить html-разметку в поле базы данных и просто позволить Eval() выдавить правильную разметку (я не делаю это).

Я также хотел бы не помещать в код фактические блоки ‹% %> C#.

Есть хорошие идеи?

РЕДАКТИРОВАТЬ: я думаю о том, чтобы сделать 3 разных asp: панели видимыми: ложными, а затем в событии с привязкой к данным списка, установить соответствующую панель видимой: истина в зависимости от условия - у кого-нибудь есть какие-либо дизайнерские мнения об этой идее?


person Dynde    schedule 23.03.2010    source источник


Ответы (2)


Решено...

Закончилось 3 панелями, а затем проверкой условия в событии itemDataBound...

Тем не менее, я все же хотел бы услышать мнение о последствиях этого решения для дизайна.

person Dynde    schedule 23.03.2010
comment
Я думаю, что использование блоков кода ‹% %› в разметке НАМНОГО чище, чем использование простой логики разметки в коде позади. Думайте об этом коде как о коде разметки, подобно JavaScript. Обычно я использую очень простой код с тернарным оператором, чтобы получить видимый или невидимый класс для моего тега. Вы также можете использовать его для вывода условной разметки. Если все становится более сложным, вы можете написать функцию кода программной части и вызвать ее. - person Loudenvier; 30.07.2013

Переопределение одного из событий «рендеринга» одной из «ячеек» списка должно помочь. Написание собственного кода для условной разметки не так уж плохо, учитывая альтернативы.

Но, пожалуйста, используйте как можно больше CSS для реального оформления страницы.

person CodingBarfield    schedule 23.03.2010