0

我想将面板的可见性绑定到gridview的selectedValue或selectedIndex,所以我试试这个:

<asp:Panel ID="pnlPic" Visible='<%   gvAllQuarries.SelectedIndex  == -1 ? false:true  %>' runat="server" >

或者

 <asp:Panel ID="pnlPic" Visible='<%=   gvAllQuarries.SelectedIndex  == -1 ? false:true  %>' runat="server" >

但智能感知的语法错误且未知。我怎么能这样绑定?可能吗?

4

1 回答 1

0

尝试在;的SelectedIndexChanged事件上放置一个事件处理程序 GridView然后您可以相应地显示/隐藏面板:(VB.NET)

Protected Sub gvAllQuarries_SelectedIndexChanged(sender As Object, e As EventArgs) Handles gvAllQuarries.SelectedIndexChanged

    pnlPic.Visible = Not (gvAllQuarries.SelectedIndex = -1)

End Sub

弄乱逻辑让它按你想要的方式播放,如果需要的话适应 C#。

作为替代方案,如果您希望将面板全部内联,则可以将面板包装在条件块中:

VB.NET:

<% If gvAllQuarries.SelectedIndex <> 1 Then%>
    <asp:Panel ID="Panel1" runat="server">

        //put whatever inside the panel

    </asp:Panel>
<% End If %>

C#:

<% if (gvAllQuarries.SelectedIndex != 1) { %>
    <asp:Panel ID="Panel1" runat="server">

        //put whatever inside the panel

    </asp:Panel>
<% } %>

这有点乱,但我能看到你在没有代码隐藏的情况下将它全部内联的唯一方法。您尝试的选项Visible='<% gvAllQuarries.SelectedIndex == -1 ? false:true %>'只有在您使用数据绑定语法 ( '<%# %>') 时才有效,然后无论如何您都需要DataBind()从代码隐藏中显式调用它。

不幸的是 using'<%= $>'只会输出静态文本,不会被评估为布尔值以应用于可见属性。

改编自这个类似的问题

于 2013-07-16T05:34:26.810 回答