我在GridView
(组件ASP.NET)的每一行中都有一个删除按钮。我想要一些删除按钮是不可见的。删除按钮的可见性应取决于返回行的数据。
GridView
由EntityDataSource
支持。 GridView
显示名为Category
的实体,每行一个实例。实体Category
(除了其他实体)还具有EntityCollection
类型的字段。该字段的名称为Items
。基本上我想只有在后备Items
实体的Category
字段是空集合时才允许用户删除行。
我无法弥补Visible
属性的绑定。我没有绑定经验,谷歌也没有真正的帮助。
这就是按钮现在的样子:
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete"
Text="Delete"
Visible=??? ></asp:Button>
我不知道应该替换???
的内容。仅当此表达式的计算结果为true时,按钮schold才可见:
((SimpleEShop.Model.Category) dataItem).Items.LongCount() <= 0
其中dataItem
变量包含表中当前行的数据。
我需要什么样的约束力?
答案 0 :(得分:3)
通常我会将它放在DataBound处理程序中,但是如下所示:
Visible="<%# Eval("Items.LongCount") <= 0 ? "false" : "true";%>"
引号内的引号可能会导致错误,这是我将它放在ItemDataBound处理程序中的一个原因。
答案 1 :(得分:3)
egrunin错过了一些尝试这样的事情
Visible='<%# !(((System.Data.Objects.DataClasses.EntityCollection<YourItemType>)Eval("Items")).Count <= 0 )%>'
答案 2 :(得分:2)
添加egrunin的语法,我只想使用
Visible='<%# Eval("Items.Count") <= 0 %>'