将TemplateField的可见性绑定到BoundField的内容。

4

我希望能够以声明性方式实现在TemplateField的“Visible”标签内的(伪代码)表达式,你有什么想法吗?我真的很想这样做。不要使用OnRowCreated事件处理、Cells[x]等方法。

            <asp:GridView ID="GridViewTest" runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:BoundField DataField="MyProperty" HeaderText="My Property" />
                    <asp:TemplateField Visible="<%# MyProperty == 'VisibleString' %>">
                        <ItemTemplate>
                            <asp:ImageButton ID="ImageButton1" runat="server" AlternateText="" ImageUrl="" OnClick="ImageButton1_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

不幸的是,对于BoundFields也是一样的。 - Marcel
1个回答

3

由于TemplateField列本身没有数据绑定支持,因此无法在其上执行该操作。我不得不在ImageButton中进行操作。现在它完美地工作:

<asp:ImageButton Visible='<%# Eval("MyProperty") == "VisibleString" %>' [...] />

1
不幸的是,这只会隐藏内容(在您的情况下是图像),但不会隐藏列和列标题。它将显示空行。 - Marcel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接