【发布时间】:2014-10-21 14:15:25
【问题描述】:
我有以下由 ASP.net GridView 控件生成的表格:
<!-- TOP TABLE WITH DROPDOWNS -->
<table class="taskGridView">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<!-- BOTTOM DATA TABLE -->
<table id="yourTasksGV">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
显示这个:
如您所见,第一个表格(带有下拉菜单)未与底部表格对齐。
我在windows.load() 事件中有以下代码来匹配两个表之间的每一列:
var firstCol = $("#yourTasksGV").find("tr > td:first").width();
$(".taskGridView").find("tr > td:first").width(firstCol + "px");
var secondCol = $("#yourTasksGV").find("tr > td:second").width();
$(".taskGridView").find("tr > td:second").width(secondCol + "px");
var thirdCol = $("#yourTasksGV").find("tr > td:third").width();
$(".taskGridView").find("tr > td:third").width(thirdCol + "px");
var fourthCol = $("#yourTasksGV").find("tr > td:fourth").width();
$(".taskGridView").find("tr > td:fourth").width(fourthCol + "px");
var fifthCol = $("#yourTasksGV").find("tr > td:fifth").width();
$(".taskGridView").find("tr > td:fifth").width(fifthCol + "px");
var sixthCol = $("#yourTasksGV").find("tr > td:sixth").width();
$(".taskGridView").find("tr > td:sixth").width(sixthCol + "px");
var seventhCol = $("#yourTasksGV").find("tr > td:seventh").width();
$(".taskGridView").find("tr > td:seventh").width(seventhCol + "px");
var eighthCol = $("#yourTasksGV").find("tr > td:eighth").width();
$(".taskGridView").find("tr > td:eighth").width(eighthCol + "px");
var ninthCol = $("#yourTasksGV").find("tr > td:ninth").width();
$(".taskGridView").find("tr > td:ninth").width(ninthCol + "px");
页面加载时,列仍未对齐。
如何修改/添加到现有代码以使两个表都对齐所需的结果?另外,如果任一表中的任何列发生更改,我该如何编码,从下拉选择中选择一个选项,两个表中的列都会调整?
【问题讨论】:
-
让它们成为同一张桌子?
-
为此替换整个 Jquery 代码:
$("#yourTasksGV").find("tr > td").each(function() { $($(".taskGridView").find("tr > td")[$(this).index()]).width($(this).width()); }); -
放在onload还是ready函数?我希望它是动态的,所以只要大小改变,另一个表也会改变:)
-
它只是您代码的简化版本...要遍历所有列,无论有多少...您应该把它放在
ready
标签: jquery html css asp.net html-table