У меня есть кнопка удаления в каждой строке GridView
(компонент ASP.NET). Я хочу, чтобы некоторые кнопки удаления были невидимыми. Видимость кнопки удаления должна зависеть от данных, которые возвращают строку.Видимость кнопки привязки к выражению (C#)
GridView
Поддержан EntityDataSource
. GridView
отображает объекты, называемые Category
, по одному экземпляру в каждой строке. Объект Category
имеет (кроме других) также поле типа EntityCollection
. Название этого поля: Items
. В принципе, я хочу разрешить пользователю удалять строку только в том случае, если поле Items
области поддержки Category
является пустой коллекцией.
Я не могу составить переплет Visible
. У меня нет опыта с привязками, и Google действительно не помогает. Это как кнопка выглядит прямо сейчас:
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete"
Text="Delete"
Visible=??? ></asp:Button>
Я не знаю, что должно заменить ???
. Кнопка schold быть видимой только тогда, когда это выражение истинно:
((SimpleEShop.Model.Category) dataItem).Items.LongCount() <= 0
, где dataItem
переменные содержит данные о текущей строке в таблице. Какая привязка мне нужна?
Это выглядит многообещающим - это порождает ошибку, говоря, что в коллекции сущностей класса нет свойства LongCount, но это моя ошибка ... Я буду исправить (найти правильное свойство) и повторить попытку. – drasto
Я изменил свой ответ тем, что, как мне кажется, просто заменит «YourItemType», и это должно работать – alejandrobog
В выражении было еще две проблемы, но, наконец, у меня есть следующее: Visible = '<% # (int) Eval ("Items.Count") <= 0? true: false%> '. Теперь проблема в том, что это оценивается как true, независимо от того, сколько элементов находится в «Items». Как найти, где проблема? Я не могу использовать отладчик для точки останова в этом коде ... – drasto