Скрыть столбец таблицы во вложенном ListView - PullRequest
1 голос
/ 23 декабря 2008

У меня есть ListView внутри другого ListView, и я хотел бы скрыть столбец таблицы во внутреннем ListView при каждой передаче определенного параметра. Учитывая настройки ниже, как бы я скрыл столбец идентификатора (как заголовок, так и данные), если URL-адрес содержит «...? Id = no»?

<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 ]

2 голосов
/ 24 декабря 2008

если вы пытаетесь сделать это из кода, то вы можете сделать это:

В событии onBind для внешнего ListView вы найдете внутренний элемент управления listview, а затем найдете нужную метку и измените свойство visible на false. я ответил на ваш другой вопрос.

удачи!

1 голос
/ 23 декабря 2008

вы можете обернуть их в заполнитель, а затем динамически установить видимость заполнителя для удаления столбца ... (вам понадобятся два заполнителя)

0 голосов
/ 24 декабря 2008

добавьте класс 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 в таблицу стилей и добавить его только в те теги, которые хотите скрыть, основываясь на идентификаторе

0 голосов
/ 23 декабря 2008

Вы можете сделать следующее:

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

и сделать то же самое для заголовка.

edit: вам неясно, но из предыдущего комментария, если вы хотите сделать это в коде, то вы должны поместить заголовок id и данные id в элемент управления сервера меток. затем вы можете проверить строку запроса в коде позади, а при привязке данных вы можете установить для свойства visible значение false.

здесь есть несколько вариантов, это действительно зависит от того, с чем вам удобнее всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...