Условно показать поле в пользовательском шаблоне виджета модуля
Я создал пользовательский модуль цитирования для академических ссылок. Цитаты имеют, помимо прочего, заголовок и необязательный articleURL для ссылки на оригинальную статью.
Могу ли я написать шаблон виджета, чтобы, если URL-адрес не был пустым, отобразить его как ссылку? С извинениями за мой псевдокод в стиле PHP (новичок в sitefinity/.net) у меня в голове что-то вроде:
if (notEmpty('articleURL')) {
<a href="<%# Eval("articleURL")%>"><%# Eval("Title")%></a>
} else {
<%# Eval("Title")%>}
В идеале я хотел бы иметь возможность сделать это с помощью онлайн-редактора виджетов, а не внешнего файла.
1 ответ
Я знаю, что отвечал на это на форумах Sitefinity, где вы размещали кросс-посты, поэтому я повторяю решение здесь на тот случай, если кто-то еще ищет здесь этот вопрос.
по умолчанию встроенный редактор шаблонов виджетов удаляет любой код на стороне сервера, поэтому такой подход, к сожалению, не будет работать.
Однако я считаю, что есть два способа достижения желаемого результата.
Вы можете использовать третичный оператор, чтобы скрыть значение, например:
<%# Eval("Foo") == null ? "" : Eval("Foo") %>
Кроме того, вы можете сопоставить шаблон виджета с внешним файлом. Использование внешнего файла шаблона не приведет к удалению кода, и у вас будет полный контроль над воспроизведением содержимого по вашему желанию.
Для получения дополнительной информации о шаблонах сопоставления посмотрите эту статью: Сопоставление внешних шаблонов для виджетов Sitefinity 4
надеюсь, что это полезно!