JavaScript显示隐藏功能布局问题firefox chrome

时间:2012-05-12 23:53:10

标签: c# javascript asp.net gridview

我有一个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>

2 个答案:

答案 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元素仍然在流中,因此它们不会与其他元素重叠。