Я хочу спрятать товар в datalist
в зависимости от состояния suing ItemBound
, как?Как спрятать товар в datalist
ответ
Оберните PlaceHolder
контроль над всем содержимым ItemTemplate
.
Затем в ItemDataBound случае, вы могли бы сделать что-то вроде:
Protected Sub myDataList_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles myDataList.ItemDataBound
If Not Value = Value2 Then
Ctype(e.Item.FindControl("myPlaceHolder"), PlaceHolder).Visible = False
End If
End Sub
Лучший подход (однако я не имел шанс проверить это), было бы скрыть весь элемент, используя e.Item.Visible
. Таким образом, элементы HTML-таблицы не будут отображаться для элемента. Это также означает, что PlaceHolder
необходимо будет добавить.
Protected Sub myDataList_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles myDataList.ItemDataBound
If Not Value = Value2 Then
e.Item.Visible = False
End If
End Sub
В качестве альтернативы, если значения вы проверяете взяты из исходной базы данных, можно фильтровать элементы перед обязательными:
WHERE [email protected]
Вы пытались, если 'DataList' создаст пустые строки для этих скрытых элементов? Я полагаю, он будет выглядеть так же, как мой подход. – Filburt
@Filburt Я улучшил ответ, включив возможный вариант скрытия элемента. – Curt
Я попробовал ваш улучшенный пример, но ItemDataBound, похоже, не работает; даже если я устанавливаю 'e.Item.Visible' всегда' False', он все равно создает все элементы. – Filburt
Простое решение могло бы установить видимость ваш предметный контейнер, оценив ваше желаемое состояние на вашей позиции. Тэги: табло:
<ItemTemplate>
<div id="itemdiv" visible='<%# (Convert.ToInt32(Eval("YourValue")) == 5) %>' runat="server">
<%# Eval("SomeOtherValue") %>
</div>
</ItemTemplate>
В моем примере используется но вы можете использовать любую переменную в области видимости.
Pitfall!
DataList
будет настаивать на создании пустых строк для скрытых элементов, поэтому вам, возможно, придется использовать ListView
, чтобы полностью контролировать создание вашего отфильтрованного списка элементов.
Update
Использование ListView
вместо этого будет создавать только строки для видимых элементов:
<ItemTemplate>
<tr id="itemdiv" visible='<%# (Convert.ToInt32(Eval("YourValue")) == 5) %>' runat="server">
<td><%# Eval("SomeOtherValue") %></td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table border="1">
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
- 1. Как связать DataList внутри DataList?
- 2. Как спрятать # в nginx
- 3. DataList
- 4. Как скрыть Woocommerce «нет в наличии» товар цена
- 5. Как добавить каждый товар в новый товар в корзину
- 6. Как спрятать псевдоселекторов в SASS
- 7. Как спрятать Foldcolumn в Vim?
- 8. Как спрятать encodeURIComponent в javascript?
- 9. Как спрятать подпапку в url
- 10. Как спрятать titleBar в списке?
- 11. Как спрятать оси в matplotlib.pyplot
- 12. Как спрятать form_dropdown в codeigniter
- 13. Как спрятать функцию в C++
- 14. Как спрятать вкладки в jQuery
- 15. Как спрятать «./» в netrw vim
- 16. Как спрятать jTable в jFrame
- 17. Как спрятать шаблон в gridview
- 18. Как спрятать ключи в массиве?
- 19. Как спрятать systemtray в ландшафте
- 20. Как спрятать файл в Atom
- 21. Как получить значение в datalist при нажатии кнопки в DataList
- 22. Как спрятать rxjs наблюдаемый
- 23. Как спрятать ссылку?
- 24. Как спрятать устройство (Android)
- 25. Как спрятать пространство?
- 26. Как спрятать player.js player
- 27. Как спрятать источник изображения
- 28. Как спрятать UITabBarController
- 29. Как спрятать привязку?
- 30. Как спрятать запрос AJAX
Будет ли это значение из источника данных? Если да, то, вероятно, лучше всего удалить его из источника данных в первую очередь. Если вы используете источник данных SQL, вы можете использовать предложение WHERE. – Curt
Да, но я не могу повторно привязать данные datalist, пока я нахожусь внутри ItemBound – Bader
Если в ItemBound есть значение, которое вам нужно проверить, наверняка у вас есть это доступное из источника данных? – Curt