Как удалить столбец таблицы в MVC? - PullRequest
0 голосов
/ 09 октября 2009

Я хочу иметь два столбца и в зависимости от условия включить или удалить третий. использование всех операторов if кажется немного излишним. Есть ли другой способ сделать это?

<table style="width: 60%;">
                <tr>
                    <th>Name</th>
                    <th>Age</th>
                    <th>Other</th>
                </tr>
                <tr>
                    <td><%= Model.Name.ToString().Trim()</td>
                    <td><%= Model.Age.ToString().Trim()</td>
                    <td><%= Model.Other.ToString().Trim()</td>
                </tr>

                <tr>
                    <td><%= Model.Name2.ToString().Trim()</td>
                    <td><%= Model.Age2.ToString().Trim()</td>
                    <td><%= Model.Other2.ToString().Trim()</td>
                </tr>

                <tr>
                    <td><%= Model.Name3.ToString().Trim()</td>
                    <td><%= Model.Age3.ToString().Trim()</td>
                    <td><%= Model.Other3.ToString().Trim()</td>
                </tr>
            </table>

Ответы [ 2 ]

1 голос
/ 09 октября 2009

Тернарный условный оператор (? :) заставляет вещи выглядеть немного лучше, если вы хотите запретить отображение значений в столбце.

<%= Model.MyValue == somevalue ? "": Model.MyValue.ToString() %>

Но если вы хотите удалить весь столбец, а не блокировать отображение значений, тогда операторы if вполне подойдут.

<tr>
    <td><%= Model.Name.ToString().Trim() %></td>
    <td><%= Model.Age.ToString().Trim() %></td>
    <% if (myCondition) { %>
        <td><%= Model.Other.ToString().Trim() %></td>
    <% } %>
</tr>

Кстати, из вашего примера кода видно, что вам нужен цикл. Вы могли бы также извлечь выгоду из некоторого кодирования HTML. Примерно так:

<% foreach (Person item in Model) { %>
    <tr>
        <td><%= Html.Encode(item.Name) %></td>
        <td><%= Html.Encode(item.Age) %></td>
        <% if (myCondition) { %>
            <td><%= Html.Encode(item.Other) %></td>
        <% } %>
    </tr>
<% } %>
0 голосов
/ 09 октября 2009

если вы используете таблицу, то скрывайте столбец с другим значением:

<% for(......){
    //evaluate here if you will show it or not?
    var showOther = Age > 18 ? "block":"none";
%>
<tr><td>..</td><td>..</td><td display="<%= showOther  %>">..</td></tr>
<% }%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...