Условное отображение поля в шаблоне виджета пользовательского модуля

Я создал пользовательский модуль цитирования для академических ссылок. Цитаты имеют, среди прочего, заголовок и необязательный URL-адрес статьи для ссылки на исходную статью.

Есть ли способ написать шаблон виджета, чтобы, если URL-адрес не был пустым, он отображался как ссылка? С извинениями за мой псевдокод в стиле PHP (новый для sitefinity/.net), у меня в голове что-то вроде:

if (notEmpty('articleURL')) {
    <a href="<%# Eval("articleURL")%>"><%# Eval("Title")%></a>
} else {
    <%# Eval("Title")%>}

В идеале я хотел бы иметь возможность делать это через онлайн-редактор виджетов, а не через внешний файл.


person fitzgeraldsteele    schedule 13.03.2012    source источник


Ответы (1)


Я знаю, что ответил на это на форумах Sitefinity, где вы разместили перекрестные сообщения, поэтому я повторяю решение здесь на случай, если кто-то еще ищет здесь этот вопрос.


по умолчанию встроенный редактор шаблонов виджетов удалит любой серверный код, поэтому этот подход, к сожалению, не сработает.

Однако я считаю, что есть два пути достижения желаемого результата.

Вы можете использовать третичный оператор, чтобы скрыть значение, например:

<%# Eval("Foo") == null ? "" : Eval("Foo") %>

Кроме того, вы можете сопоставить шаблон виджета с внешним файлом. Использование внешнего файла шаблона не приведет к удалению кода, и у вас есть полный контроль над визуализацией содержимого по вашему желанию.

Дополнительные сведения о шаблонах сопоставления см. в этом сообщении: Сопоставление внешних шаблонов с виджетами Sitefinity 4

надеюсь, это полезно!

person SelAromDotNet    schedule 18.03.2012
comment
Еще раз спасибо! Мне удалось заставить мой виджет работать с третичным оператором. - person fitzgeraldsteele; 30.03.2012