我有一个asp.net gridview,我在选中的复选框上使用'onclick'隐藏和显示列。 IE中隐藏的列显示正常,点击时,它们在Chrome,Firefox中重叠。我必须遗漏一些东西,就好像它们被添加到同一列中一样。我是新手,我可以发布截图。
任何帮助非常感谢。
function showColumn(r,grid) {
rows = document.getElementById("GridView1").rows;
drop = document.getElementById(grid);
if (drop.checked == true) {
for (i = 0; i < rows.length; i++) {
rows[i].cells[r].style.display = "block";
}
}
else if (drop.checked == false) {
for (i = 0; i < rows.length; i++) {
rows[i].cells[r].style.display = "none";
}
}
}
<p>
<asp:CheckBox ID="CheckBox1" runat="server" onclick="showColumn(2,'CheckBox1')"
Text="Show Option Name" />
</p>
<p>
<asp:CheckBox ID="CheckBox2" runat="server" onclick="showColumn(1,'CheckBox2')"
Text="Show ID" />
</p>
答案 0 :(得分:1)
而不是使用:
rows[i].cells[r].style.display = "block";
...要显示表格单元格,请尝试将display属性设置为空字符串,以便返回默认值:
rows[i].cells[r].style.display = "";
答案 1 :(得分:0)
尝试使用visibility:hidden
(和visibility:visible
)代替display
css属性。与display:none
元素不同,即使不可见,visibilty:hidden
元素仍然在流中,因此它们不会与其他元素重叠。