2012-03-22 8 views
0

私は以下のjavascript関数を持っています - リピータのチェックボックスとチェックボックスがあります。Javascript - >リピータのチェックボックス(ParentCheckbox)に基づいてgridviewのチェックボックス(ChildCheckbox)をチェック/チェックボックスをオフにします

リピータのチェックボックスの選択に基づいてgridviewCheckboxを無効にしたいとします。

私はitemsRepeater_ItemDataBoundにjavacriptを登録しています。 - どのリピータのチェックボックス - >(RepeaterCheckBoxId)およびどのGridView(グリッド)をキャプチャするか。

機能EnableDisable(RepeaterCheckboxid、グリッド) {

 var grid = document.getElementById(Grid); 
    if (grid == null) 
     return; 

    //variable to contain the cell of the grid 
    var cell; 

    if (grid.rows.length > 0) { 
     //loop starts from 1. rows[0] points to the header. 
     for (i = 1; i < grid.rows.length; i++) { 
      //get the reference of first column 
      cell = grid.rows[i].cells[1]; 

      cell.childNodes[0].checked = document.getElementById(RepeaterCheckboxid).checked;//If repeater checkbox is Unchecked then gridview checkboxes should be unchecked.* This is not working. 

      cell.childNodes[0].disabled = !document.getElementById(RepeaterCheckboxid).checked; //If repeater checkbox is checked then gridViewCheckboxes are enabled and vice versa.This is working. 


     } 
    } 
} 

しかし、私はそれは無効が正常に動作している可能認められたが未確認の確認作業をされていません。 リピータのチェックボックスがオフの場合、どのようにしてgridviewのチェックボックスをすべてオフにすることができますか?

あなたが何か考えている場合は、私を助けてください。

答えて

0

はjQueryのを使用してみてください:

$.each($(grid).find("tr"),function(){ 
     var chk = $(this).find("td:first").find(":checkbox"); 
     chk.attr("checked",$("#"+RepeaterCheckboxid).attr("checked")); 
     chk.attr("disabled",!$("#"+RepeaterCheckboxid).attr("checked")); 
    }); 
0

このようにしてみてください。

cell = grid.rows[i].cells[1]; 
var checkedAttrib = document.createAttribute('checked'); 
checkedAttrib.value = document.getElementById(RepeaterCheckboxid).checked; // this will take the value from 'RepeaterCheckboxid' 
cell.childNodes[0].setAttributeNode(checkedAttrib); 
0

あなたが好きそのクライアントIDを使用してGridViewのにアクセスする必要があります。

$('#<%=GridView1.ClientID %>') 

そして内のすべてのチェックボックスを取得するにはgridviewを使用すると、.find( "input:checkbox")を使用し、各チェックボックスを繰り返し実行することができます:

<script type="text/javascript"> 
function CheckUnCheckAll(chk) { 
$('#<%=GridView1.ClientID %>').find("input:checkbox").each(function() { 
     if (this != chk) { 
      this.checked = chk.checked; 
     } 
     }); 
    } 
</script> 

ヘッダーのCheckUnCheckAll(this)をオブジェクトとともに呼び出します。

ここでの例を確認:http://www.codegateway.com/2012/05/jquery-check-uncheck-all-checkboxes-in.html

関連する問題