隐藏嵌套ListView中的表列

时间:2008-12-23 20:34:17

标签: asp.net html listview

我在另一个ListView中有一个ListView,我想在传递特定参数时隐藏内部ListView中的表列。根据下面的设置,如果URL包含“...?id = no”,我将如何隐藏ID列(标题和数据)?

<asp:ListView ID="ProcedureListView" runat="server">
    <LayoutTemplate>
        <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
    </LayoutTemplate>
    <ItemTemplate>
        <h4>
            <%#Eval("PROCEDURE_CODE") %>
        </h4>
        <asp:ListView ID="BenefitListView" runat="server" DataSource='<%#Eval("benefits") %>'>
            <LayoutTemplate>
                <table cellpadding="5" class="indent">
                    <tr class="tableHeader">
                        <td>
                            ID
                        </td>
                        <td>
                            Benefit
                        </td>
                    </tr>
                    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
                </table>
            </LayoutTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <%#Eval("benefit_id")%>
                    </td>
                    <td>
                        <%#Eval("benefit_name")%>
                    </td>
                </tr>
            </ItemTemplate>
        </asp:ListView>
    </ItemTemplate>
</asp:ListView>

4 个答案:

答案 0 :(得分:2)

如果您尝试从后面的代码执行此操作,那么您可以这样做:

在外部ListView的onBind事件上,您将找到内部listview控件,然后找到所需的标签并将visible属性更改为false。我在你的另一个问题上回答了这个问题。

祝你好运!

答案 1 :(得分:1)

您可以将它们包装在占位符中,然后动态设置占位符的可见性以删除列...(您将需要两个占位符)

答案 2 :(得分:0)

您可以执行以下操作:

<% if (Request.QueryString["id"] != "no") { %>
   <td>
     <%#Eval("benefit_id")%>
   </td>
<% } %>
   <td>
     <%#Eval("benefit_name")%>
   </td>

并为标题执行相同操作。

编辑:你不清楚,但是从之前的评论中,如果你想在后面的代码中执行此操作,那么你应该将id标头和id数据放在标签服务器控件中。然后你可以检查后面代码中的查询字符串,在数据绑定上你可以将visible属性设置为false。

这里有一些选项,这取决于你最满意的是什么。

答案 3 :(得分:0)

将一个css类添加到HTML标记中,然后从代码中将css类注入到页面中,如此

<td id='' class='hideMe'> 
    ID
</td>

代码隐藏在预渲染事件

if(id==123){
   // please refer to help file for exact syntax
   // but essentially you will be injecting
   // <style type='text/css'>
   // .hideMe{display:none;}
   // </style>
}

或者,您可以在样式表中包含上述css类,并仅根据ID将其添加到要隐藏的标记