如何摆脱包含GridView的空div

问题描述 投票:0回答:2

在 ASP.NET Gridviews 中生成一个表,该表生成一个父 div 容器。这可能会破坏 CSS 布局,因为无法将样式附加到生成的 div。有没有办法阻止 div 生成或对其应用样式?

有人询问并标记为已解决此处,但 MS 只是说分页和排序功能需要 div。我是否可以理解,如果我想使用分页和排序功能,我不能将我自己的 div 包裹起来并应用样式?谢谢

asp.net css gridview
2个回答
9
投票

如果您坚持使用无样式的包装器(看起来确实如此)但想要强制执行样式,请给它另一个包装器,并将您的样式应用到组合中。如果一个普通的 div 有一些你想要删除的填充(例如),这在 aspx 中:

<div id="crushGvDiv">
 <asp:GridView ... >
</div>

CSS 的这个:

div#crushGvDiv, div#crushGvDiv div { padding: 0; margin: 0; }

4
投票

更新

Ians 的回应确实消除了很多黑客攻击,但它也需要 我要付出更多的努力。我认为如果我们能够两全其美 做一点不同的事...

我们不再想在我们的源中添加“表格响应”div。我们确实想向 GridView 类添加一个“table-responsive-table”。

ASP

    <asp:GridView ID=gvMain DataSourceID=dsMain RunAt=Server 
            CssClass='table table-responsive-table'>

我们的 JavaScript 只需要将 'table-responsive' 类添加到我们添加的 'table-responsive-table' 类表的父 div 中。

JS

$( document ).ready(function() {
  $(".table-responsive-table").parent().addClass('table-responsive');
});

这将生成:

HTML

<div class=table-responsive>
    <table class='table table-responsive-table' .....>

这个新的输出应该相对没有黑客相关的问题,因为我们最终得到的输出与我们本来会有的输出完全相同(除了表上的额外类),我们不需要修改这段代码适用于每个表(这意味着我们可以编写一次,它将自动应用于具有“table-responsive-table”类的所有 GridView),并且我们不会移动

© www.soinside.com 2019 - 2024. All rights reserved.