如何擺脫包含 GridView 的空 div
在 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),並且我們根本不會移動\複製表數據(這對於速度、分頁和排序)。我知道每個人都說他們有最好的答案,但我真的認為這是處理這個問題的絕對最佳方式。
注意:我沒有測試過這個新程式碼,但它可能工作得很好。