我有一个网格视图,我想看看是否选中了第一列中的复选框。如果选中该复选框,则会打开一个新窗口。我无法弄清楚如何选中复选框。请帮助下面的功能不起作用,我无法弄清楚原因。
function mapSelectedClick()
{
var CustomerIDs = "";
var grid = document.getElementById('<%=grdCustomers.ClientID %>');
for (var i = 1; i < grid.rows.length; i++)
{
var Row = grid.rows[i];
var CustomerID = grid.rows[i].cells[1].innerText;
if (grid.rows[i].cell[0].type == "checkbox")
{
if (grid.rows[i].cell[0].childNodes[0].checked)
{
customerIDs += CustomerID.toString() + ',';
}
}
}
customerIDs = customerIDs.substring(0, customerIDs.length-1);
window.open("MapCustomers.aspx?CustomerIDs=" + customerIDs);
}
答案 0 :(得分:1)
您的代码中存在一些问题:
if
条件下,您使用cell[0]
代替cells[0]
if
条件下,您使用了cell[0].type == "checkbox"
。单元格不能具有类型复选框,它包含chekbox
控件作为其子项像这样修改你的功能:
function mapSelectedClick()
{
var CustomerIDs = "";
var grid = document.getElementById('<%=grdCustomers.ClientID %>');
for (var i = 1; i < grid.rows.length; i++)
{
var Row = grid.rows[i];
var CustomerID = Row.cells[1].innerText;
var ctrl = Row.cells[0].childNodes[0];
if (ctrl.type == "checkbox")
{
if (ctrl.checked)
{
customerIDs += CustomerID.toString() + ',';
}
}
}
customerIDs = customerIDs.substring(0, customerIDs.length-1);
window.open("MapCustomers.aspx?CustomerIDs=" + customerIDs);
}
请注意innerText
不兼容浏览器,请尽可能使用innerHTML。