2

選択したチェックボックスで「onclick」を使用して列を表示および非表示にするasp.netグリッドビューがあります。非表示の列は、クリックすると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>
4

2 に答える 2

1

使用する代わりに:

rows[i].cells[r].style.display = "block";

...テーブルのセルを表示するには、displayプロパティを空の文字列に設定して、デフォルト値に戻すようにします。

rows[i].cells[r].style.display = "";
于 2012-05-13T00:28:16.037 に答える
0

cssプロパティの代わりにvisibility:hidden(および)を使用してみてください。要素とは異なり、要素は表示されていなくてもフロー内にあるため、他の要素と重複することはありません。visibility:visibledisplaydisplay:nonevisibilty:hidden

于 2012-05-13T00:22:09.477 に答える