在listview itemtemplate中条件显示表行

时间:2011-11-09 16:16:40

标签: asp.net listview

我在不同的地方看过类似的问题,但是还没有真正找到对我有用的答案。基本上,我有一个ListView,我想隐藏表行,如果特定条件为真,则数据绑定中的特定值(大多数情况下,如果项的值为null或空字符串)。我已经尝试制作tr runat =“server”并在visible属性上设置条件,但这会返回运行时错误“服务器标签格式不正确”。这就是我想要做的事情:

<asp:ListView runat="server" ID="FullInfoListView">
    <LayoutTemplate>
        <table class="tablestripe" width="100%">
            <asp:Placeholder runat="server" ID="itemPlaceholder" />
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr valign="top" class="eventrow1">
            <td colspan="2">
                <h3><%# Eval("FirstName") Eval("LastName") %></h3>
            </td>
        </tr>
        <tr valign="top" runat="server" Visible="<%# (bool)Eval("PhotoVis") %>">
            <td colspan="2">
                <img src="~/Userphoto/thumb/<%# Eval("NetworkLogin") %>.jpg" />
            </td>
        </tr>
    </ItemTemplate>
</asp:ListView>

3 个答案:

答案 0 :(得分:6)

Visible setter周围必须有单引号:

<tr valign="top" runat="server" Visible='<%# (bool)Eval("PhotoVis") %>'>
     <td colspan="2">
        <img src='~/Userphoto/thumb/<%# Eval("NetworkLogin") %>.jpg' />
     </td>
</tr>

答案 1 :(得分:1)

您可以将行换行到PlaceHolder

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible='<%# (bool)Eval("PhotoVis") %>'>
    <tr valign="top">
        <td colspan="2">   
            <img src='~/Userphoto/thumb/<%# Eval("NetworkLogin") %>.jpg' />   
        </td>   
    </tr>
</asp:PlaceHolder>

编辑:图片src属性周围包含单引号

答案 2 :(得分:0)

尝试设置style="display:none",而不是使用Visible