Asp.net

如何擺脫包含 GridView 的空 div

  • June 18, 2018

在 ASP.NET Gridviews 中生成一個表,該表生成一個父 div 容器。這可能會破壞 CSS 佈局,因為無法將樣式附加到生成的 div。有沒有辦法阻止 div 生成或將樣式應用於它?

此處已詢問並標記為已解決,但 MS 只是說分頁和排序功能需要 div。我是否明白,如果我想使用分頁和排序功能,我不能將自己的 div 包裹起來並應用樣式?謝謝

如果你被一個無樣式的包裝器困住(看起來你就是這樣),但想要強制執行一個樣式,給它另一個包裝器,並將你的樣式應用到組合中。如果一個普通的 div 有一些你想擺脫的填充(例如),這在 aspx 中:

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

這對於 CSS:

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

更新

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’ 類的 GridViews),並且我們根本不會移動\複製表數據(這對於速度、分頁和排序)。我知道每個人都說他們有最好的答案,但我真的認為這是處理這個問題的絕對最佳方式。

注意:我沒有測試過這個新程式碼,但它可能工作得很好。

引用自:https://stackoverflow.com/questions/1166937