使用Eval Boolean为asp.net控件设置样式

时间:2016-08-15 11:52:47

标签: c# asp.net listview eval conditional-statements

我有一个asp:ListView控件,其中包含如下设置的一堆图像:

<asp:ListView ID="lvSliderPhotos" runat="server">
    <ItemTemplate>
        <asp:Image ID="imgSliderPhoto" runat="server"
            ImageUrl='<%# Eval("ThumbnailPath") %>' />
    </ItemTemplate>
</asp:ListView>

对于包含这些的数据库表,我有一个名为IsPublic的字段,它存储一个布尔值。如果值为false,如何将样式应用于asp:Image控件?

我基本上想要这样的东西:

<asp:Image ID="imgSliderPhoto" runat="server"
    ImageUrl='<%# Eval("ThumbnailPath") %>'
    Style='<if (!Eval("IsPublic") { set a style property }>' />

知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分:3)

您可以检查图像控件的IsPublic属性中CssClass的值,并将其设置为所需的样式规则:

CssClass='<%# Convert.ToBoolean(Eval("IsPublic")) ? "public" : "private" %>'

完整示例:

  <head runat="server">
    <title></title>
    <style type="text/css">
        .public {
            border: 6px solid red;
        }

        .private {
            border: 6px solid black;
        }
    </style>
</head>
<body>
    <asp:Image ID="Image1" runat="server" />
    <form id="form1" runat="server">
        <asp:ListView ID="lvSliderPhotos" runat="server">
            <ItemTemplate>
                <asp:Image ID="imgSliderPhoto" runat="server"
                    ImageUrl='<%# Eval("ThumbnailPath") %>' CssClass='<%# Convert.ToBoolean(Eval("IsPublic")) ? "public" : "private" %>' />
            </ItemTemplate>
        </asp:ListView>
    </form>
</body>