如何隐藏应该从视图中隐藏的列。我通过隐藏对象来处理这个问题,但是该列仍然在UI中显示为一个瘦的列,行中没有任何内容。有没有办法阻止绘制项目?
grid.Column(null, null, format: @<input type="hidden" name="RevisionId" value="@item.LatestRevisionId"/>)
感谢。
答案 0 :(得分:6)
WebGrid帮助程序允许您使用style
属性将CSS类应用于各个列。不幸的是,虽然这样可以隐藏tbody
部分中的列,但您无法对列标题应用不同的样式。您可以将相同的样式应用于所有列,这使得它非常无用。所以一种可能性就是使用CSS:
table th:first-child, table td:first-child {
display: none;
}
这假设您要隐藏第一列,并且客户端浏览器支持:first-child
伪选择器,这可能不是旧浏览器的情况。
因此,如果您需要支持旧版浏览器,您可以使用jQuery将隐藏样式应用于第一列的标题和行,或者直接隐藏它们:
$(function () {
$('table th:first-child, table td:first-child').hide();
});
如果您希望获得更多控制权,我建议您查看MvcContrib Grid或Telerik Grid。
答案 1 :(得分:0)
* 强文 *来自Darin的解决方案只是部分,因为“table th:first-child”也将hide the "canPage:true" grid footer
(用于分页)。
解决方案是添加additional styling
。
在你的“head”部分(或者在CSS文件中,如果你想在所有表格上应用它):
<style type="text/css">
.nodisplay {display: none;}
</style>
在Webgrid部分:
footerStyle : "table-footer",
...
grid.Column(null, null, style:"nodisplay", ...
在CSS文件中:
.table-footer {
display: normal
}