Использование JQuery для удаления пустых строк из таблиц HTML - PullRequest
3 голосов
/ 21 января 2011

У меня есть HTML-таблица:

<table id="indicationResults" class="resultsGrid" cellpadding="2" cellspacing="0" >

Некоторые ячейки таблицы содержат только строки в зависимости от конкретных разрешений.Например, вот одна строка, которая помещает метку и данные в каждую ячейку только в том случае, если у пользователя есть определенное разрешение:

<tr>
    <td id="DV01Label" class="resultsCell">
        <%= CustomHelpers.StringWithPermission("DV01", new string[] { PERMISSIONS.hasALM })%>
    </td>
    <td id="DV01Value" class="alignRight">
        <%= CustomHelpers.StringWithPermission(Model.Results.DV01.ToString(Chatham.Web.Data.Constants.Format.CurrencyCentsIncludedFormatString), new string[] { PERMISSIONS.hasALM })%>
    </td>
    <td id="DV01Fixed" class="alignRight">
        <%= CustomHelpers.StringWithPermission(Model.Results.FixedComponent().DV01.ToString(Chatham.Web.Data.Constants.Format.CurrencyCentsIncludedFormatString), new string[] {PERMISSIONS.hasALM})%>
    </td>
    <td id="DV01Floating" class="alignRight">
        <%= CustomHelpers.StringWithPermission(Model.Results.FloatingComponent().DV01.ToString(Chatham.Web.Data.Constants.Format.CurrencyCentsIncludedFormatString), new string[] { PERMISSIONS.hasALM })%>
    </td>
</tr>

Как мне вернуться назад и удалить и все полностью пустые строки в этом КОНКРЕТНОМтаблица после загрузки страницы с использованием JQuery, поэтому вместо того, чтобы видеть маленькую пустую строку, ее просто нет.

Ответы [ 2 ]

11 голосов
/ 21 января 2011

С помощью jQuery:

$('#indicationResults tr').each(function () {
     if (!$.trim($(this).text())) $(this).remove();
});

Хотя было бы намного лучше, если бы вы могли изменить свой asp, чтобы выводить только строки, когда у пользователя есть необходимые разрешения;)

0 голосов
/ 21 января 2011

Вы должны написать правильный помощник HTML. В отличие от веб-форм, MVC дает вам полный контроль над сгенерированным HTML и совершенно непростительно использовать JavaScript для исправления испорченного HTML.

Итак:

public static MvcHtmlString RowWithPermission(
    this HtmlHelper htmlHelper, 
    string cssClass, 
    string id, 
    string value, 
    string[] permissions
)
{
    if (HasPermissions(permissions))
    {
        var td = new TagBuilder("td");
        td.AddCssClass(cssClass);
        td.GenerateId(id);
        td.InnerHtml = value;
        return MvcHtmlString.Create(td.ToString());
    }
    return MvcHtmlString.Empty;
}

и затем:

<tr>
    <%= Html.RowWithPermission("resultsCell", "DV01Label", "DV01", new string[] { PERMISSIONS.hasALM }) %>
    <%= Html.RowWithPermission("alignRight", "DV01Value", Model.Results.DV01.ToString(Chatham.Web.Data.Constants.Format.CurrencyCentsIncludedFormatString), new string[] { PERMISSIONS.hasALM }) %>
    ...
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...