2011-01-21 87 views
3

我有一個HTML表中刪除空行:使用jQuery從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加載,所以不是看到一個微小的空行,它只是不在那裏。

回答

10

使用jQuery:

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

雖然它會好得多,如果你可以修改你的ASP只輸出行,當用戶有正確的權限;)

+0

對待這個問題,因爲他們說的治癒:) – nik0lias

+1

+1對解決問題的服務器端的註釋之前。這不應該是一個JavaScript解決方案。 – JasCav

+0

如果它會殺死我,就會發生這種修改,哈哈。得到的方式,直到下一個衝刺雖然= / – slandau

0

你應該寫一個正確的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>