在 ASP.NET 2.0 Web 应用程序中,有一个网格视图,其中行是动态创建的,第一列作为复选框。用户要么选中 GridView Rows 中的单个复选框,要么只选中 Check All 以检查 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 及更高版本中此属性的替代方法是什么?