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

Я создал пользовательский модуль цитирования для академических ссылок. Цитаты имеют, помимо прочего, заголовок и необязательный 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

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

Другие вопросы по тегам