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 以降でこのプロパティの代わりになるものは何ですか?