0

ASP.NET 2.0 Web アプリケーションには、最初の列をチェックボックスとして動的に行を作成するグリッド ビューがあります。ユーザーは、GridView 行の個々のチェックボックスをオンにするか、[すべてチェック] のみをオンにして GridView のすべての行をオンにします。

ヘッダー テンプレート (ヘッダー行) とアイテム テンプレート (データ行) を含むテンプレート フィールドを追加しました。ユーザーが GridView_RowDataBound イベントでヘッダー行のチェックボックスをクリックしたときに、すべてのデータ行のチェックボックスをチェックする JavaScript メソッドを追加しました。

Javascript 関数は、"getElementById('GridViewName')" によって GridView を取得し、行の最初のセル タイプがチェックボックスであるかどうかを確認し、そのチェックボックスをオンにします。

    //get gridview from the document
    var grid = document.getElementById(gridId);
    //total rows in the gridview
    var rowsCount = grid.rows.length;
    //cond: sent by header checkbox 
    if (bIsHeader == true) {
        //loop starts from 1. rows[0] points to the header.
        for (i = 1; i < rowsCount; i++) {
            //get the reference of first column
            cell = grid.rows[i].cells[0];
            //cond: confirm type of the cell child
            if (cell.childNodes[0].type == "checkbox") {
                //assign header checkbox state to every row
                cell.childNodes[0].checked = chkBox;
            }
        }
    }

IE 8以下のバージョンでは問題なく動作していました。しかし、IE 9では、このjavascript関数が行のchildNodesを取得するようになると、チェックボックスであるかどうかを確認します。踏み込みません。

何を修正したかったのですか?

私のコードでは、row.childNodesは IE 9 で動作しません。IE 9 以降でこのプロパティの代わりになるものは何ですか?

4

1 に答える 1

0

row.childrenプロパティは、このタスクを達成するために機能します。

于 2013-05-30T06:36:09.770 に答える