2011-07-21 9 views
0

Project.Say内のすべてのモジュールのサブ管理者の権限(Add/View/Delete/Edit/All)を変更するためのWebページを開発しています。 5つのモジュール。私は現在の権限を各モジュールのDataGridにロードしています(DataGridには5行(モジュール)があり、そのモジュールにはチェックボックスに5列の権限があります)。私は 'ALL'チェックボックスをチェックすると、(モジュール)、Add、View、Edit、Deleteのチェックボックスをチェックし、 'ALL'チェックボックスをオフにすると、他のチェックボックスをオフにする必要があります。 javascriptまたは任意のイベントに対して許可されるすべてのソリューションです。 私はcheckedchangedイベントを試しましたが、そのモジュール(行)の代わりにDataGrid全体のすべてのチェックボックスをチェック/チェック解除します。私はこのコードを書いています。チェックボックスが同じ行内でチェックされている場合、DataGrid-rowのすべてのチェックボックスをチェックしてください。

foreach (DataGridItem dgitem in dg_rights.Items) 
      { 
       CheckBox chkall = (CheckBox)dgitem.FindControl("chk_all"); 
       CheckBox chkadd = (CheckBox)dgitem.FindControl("chk_add"); 
       CheckBox chkedit = (CheckBox)dgitem.FindControl("chk_edit"); 
       CheckBox chkview = (CheckBox)dgitem.FindControl("chk_view"); 
       CheckBox chkdelete = (CheckBox)dgitem.FindControl("chk_delete"); 
       if (chkall.Checked) 
       { 
        chkadd.Checked = true; 
        chkedit.Checked = chkview.Checked = chkedit.Checked = chkdelete.Checked = true; 
       } 
       else 
       { 
        chkadd.Checked = false; 
        chkedit.Checked = chkview.Checked = chkedit.Checked = chkdelete.Checked = false; 
       } 
      } 

基本的なことが間違っていたり間違っているようです。 おかげ アニッシュ

+1

javascriptも受け付けます... – LeO

答えて

0

を取得するためにデータローと.FindControlを取得するために電子を使用。ここで、chk_は、chk_nで始まるすべてのチェックボックスのIDです。すべてチェックされます。

function abcd(checkbox) { 
      var cba = $("#" + checkbox.id); 
      if (cba.is(':checked')) { 
       //alert("check all") 
       var cb = $("#" + checkbox.id); 
       var td = cb.parent("td"); 
       var tr = td.parent("tr"); 
       tr.children().children("input:checkbox[id*=chk_]").attr('checked', cb.attr('checked')); 
      } 
      else { 
       //alert("unchecked"); 
       var cb = $("#" + checkbox.id); 
       var td = cb.parent("td"); 
       var tr = td.parent("tr"); 
       tr.children().children("input:checkbox[id*=chk_]").removeAttr('checked'); 
      } 
     } 

ありがとうございます。

0

あなたはこのjQueryのことができます、あなたがこれを行うためにASP.NETサーバー側のソリューションについては

$('#<%= YourGrid.ClientID %> input[id$=_chkAll]').click(
    function() { 
     var all_checked = $(this).attr('checked') == 'checked'; 
     $(this).parent().parent().find('input').each(
      function (i,o) { 
       o.checked = all_checked; 
      } 
     ) 
    } 
) 

http://jsfiddle.net/4u6gw/

あります

  • はchkallチェックを設定しますボックスから自動ポストバックへ
  • ItemsGrid_Commandへのフック(Object sender、DataGr idCommandEventArgs E)と私はchk_allチェックボックスのための「onclickを」オン「この」引数を持つ関数のABCDと呼ばれ、私はこれとその作業になってしまった他のチェックボックスに
+0

あなたのグリッドをdg_rightsで置き換え、_chkAllの代わりに_chk_all/chk_all(チェックボックスのID)を使用することはできません。小さな問題かもしれません。 chk_allは、DataGridの最後の列にあります。 – LeO

関連する問題