我有一个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加载页面后,如何返回并删除此SPECIFIC表中的所有完全空行,因此不会看到一个小的空行,而是在那里。
答案 0 :(得分:11)
使用jQuery:
$('#indicationResults tr').each(function () {
if (!$.trim($(this).text())) $(this).remove();
});
虽然如果你能在用户拥有正确的权限时修改你的asp只输出行会好得多;)
答案 1 :(得分:0)
您应该编写一个合适的HTML帮助器。与Web表单相反,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>