2010-11-30 16 views
0

私はポストを、次の午前:複数のユーザーコントロールとのClientID asp.net JS

http://mosesofegypt.net/post/GridView-with-Select-All-CheckBox-using-JQuery.aspx

を選択/すべての機能を選択解除してasp.netのGridViewの中のチェックボックス列を作成します。 私の場合、gridviewとjavascript(JQuery)コードは動的にロードされるusercontrolの中にあり、そのユーザーコントロールのインスタンスは複数あります。選択/選択解除機能は、ページ上に作成された最後のユーザーコントロールでのみ機能します。 つまり、jsスクリプトのgvProducts.ClientIdは最後のグリッドビューについてのみ認識します。 どのように私は他のusercontrol内のgridviewのClientIdsへの参照を得ることができます(つまり、最後のもの以外)? ご迷惑をおかけして申し訳ございません。

編集:この質問は本書の質問と本質的に同じです:Multiple user control instances and ClientID in JS しかし、援助の答えはありません。

おかげで、 アリ

答えて

0

あなたがGridViewコントロールにのCssClassを追加し、その離れてあなたのjQueryのセレクタのベースができます。

スクリプト:同じクラス名を持つ

<script type="text/javascript"> 
    $(function() { 
     $(".t th input:checkbox").click(function() { 
      var $checkbox = $(this).closest('table').find(':checkbox:not(:first)'); 
      $checkbox.attr('checked', $(this).attr('checked')); 
     }); 
    }); 
</script> 

2のテーブル:

<table class="t">   
    <tr> 
     <th align="left" scope="col">Category</th> 
     <th align="left" scope="col">Product</th> 
     <th align="right" scope="col">Unit Price</th> 
     <th align="left" scope="col">Supplier</th> 
     <th scope="col"> 
      <input type="checkbox" name="select-all" /> 
     </th> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
</table> 
<br /><br /><br /> 
<table class="t">   
    <tr> 
     <th align="left" scope="col">Category</th> 
     <th align="left" scope="col">Product</th> 
     <th align="right" scope="col">Unit Price</th> 
     <th align="left" scope="col">Supplier</th> 
     <th scope="col"> 
      <input type="checkbox" name="select-all" /> 
     </th> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
</table> 
+0

ありがとうfehays、しかし、のCssClassは、すべてのページのgridviewsと選択に適用されるそのよう/すべての意志の選択を解除すべてのグリッドビューに適用されます。私は単一のgridviewで作業する必要があります。それ以上の提案はありますか? – Ali

+0

作業する単一グリッドビューは常に同じインデックスですか?たとえば、2番目のグリッドビュー、または1番目など?もしそうなら、jquery eq()を使って特定のものを得ることができます。例えば - $( "。classname:eq(2)")は、class = "classname"の3番目の要素を指定します。 – fehays

+0

いいえ、常に同じインデックスではなく、コントロールの総数もあらかじめわかっていません。また、私は "単一のgridview"と言ったとき、私は特定のgridviewのヘッダチェックボックスを選択すると、そのgridviewのchecboxesのみを選択/選択解除する必要があることを意味しました。 – Ali

関連する問題