2012-06-05 55 views
0

我有一個網格視圖,我想查看是否選中了第一列中的複選框。如果複選框被選中,它將打開一個新窗口。我無法弄清楚如何查看複選框是否被選中。請幫助下面的功能不工作,我不明白爲什麼。檢查是否在使用Javascript的GridView的一行中檢查了asp複選框

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); 
    } 

回答

1

,我們在您的代碼幾個問題:

  1. 在這兩種if條件下,您使用的cell[0]代替cells[0]
  2. 在您使用cell[0].type == "checkbox"if條件。細胞不能有類型的複選框,它包括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儘可能。

相關問題