2011-10-03 7 views
3

체크하지 않은 체크 박스를 체크하는 자바 스크립트 기능을 수행하고 싶습니다. 내 기능은 현재 모든 체크되지 않은 체크 박스를 확인하고 난 그냥 특정의 GridView 체크되지 않은 체크 박스를 먼저 요소에 대한 검색의 범위를 제한 할GridVIew에 속한 확인란을 어떻게 확인할 수 있습니까?

function checar() {  
    var el = document.getElementsByTagName("input"); 
    for (var i = 0; i < el.length; i++) { 
     if (el[i].type == "checkbox") { 
      el[i].checked = true; 
     } 
    } 
} 

답변

2

를 확인하는 것이 필요합니다. 그렇게하는 한 가지 방법은 div의를 사용에서 getElementById

function checar() { 
var grd = document.getElementById("<%=grd.ClientID%>"); // <-- Add this line 
var el = grd.getElementsByTagName("input"); // <-- change the scope of this to grd 
//rest of your code here. 
} 

샘플을 사용하는 것입니다,하지만 당신은 내가 생각하는 아이디어를 얻을 것이다 : 특정 그리드 ID 설정을 포함하는을 편집 http://jsfiddle.net/8LRkk/

합니다.

+0

예, 여기 구하기 전에 내가 그것을보고, 나는이 솔루션을하려고했으나 var에 GRD을, null를 돌려줍니다. –

+0

코드에 설정되지 않은 GridView의 실제 렌더링 된 ID를 넣어야합니다 (예 : document.getElementById ("<% = grd.ClientID %>"); –

+0

두 방법 모두 시도하고 모두 null을 반환합니다. –

0

특정 gridview의 모든 확인란을 가져 오려면 모든 컨트롤의 ID가 "스택"이므로 ClientID에 grid34의 ClientID 부분이 포함 된 확인란을 가져와야합니다. 귀하의 기능이 기본으로 작동합니다

, 그것은 단지에서 추가 검사가 필요 :

function checar() {  
    var el = document.getElementsByTagName("input"); 

    // Get the client id of the gridview from ASP here 
    var gvID = '<%= this.myGridview.ClientID %>'; 

    for (var i = 0; i < el.length; i++) { 
     // Call the id of the checkbox and check to see if it 
     // contains the client id of the gridview at the same time 
     if (el[i].type == "checkbox" && el.id.indexOf(gvID) != -1) { 
      el[i].checked = true; 
     } 
    } 
} 
+0

이 샘플은 모든 확인란을 갖게 될 것입니까? "Select All"버튼을 클릭해야하기 때문에 모두 선택됩니다. –

+0

@ Lucas_Santos : 아니오, 질문을 읽었을 때 gridview에서 하나의 체크 박스가 필요한 것처럼 들렸습니다. 그리드의 모든 체크 박스와 일치하도록 내 대답을 조정합니다. –

+0

@ Lucas_Santos : 업데이트 게시. –

관련 문제