2012-04-23 16 views

答えて

2
テスト

新コード:

$(function() { 


    var visible = true; 
    $('#yo').click(function() { 
     alert('hello'); 

     visible = !visible; 
     showColumn('#yourFlexigridNameHere', 'Lastname', visible); 
    }); 

}); 


// you can put this in a separate javascript library 
function showColumn(tbl, columnName, visible) { 

    var grd = $(tbl).closest('.flexigrid'); 
    var colHeader = $('th[abbr=' + columnName + ']', grd); 
    var colIndex = $(colHeader).attr('axis').replace(/col/, ""); 


    // queryVisible = $(colHeader).is(':visible'); 
    // alert(queryVisible); 

    $(colHeader).toggle(visible); 

    $('tbody tr', grd).each(
     function() { 
      $('td:eq(' + colIndex + ')', this).toggle(visible); 
     } 
    ); 

} 

HTML:

<input id='yo' type="button" /> 

することができますあなたはまた、flexigridに対してメソッドを追加することができ、あなたは別のJavaScriptライブラリでこれを置くことができる

colModel: [ 
    {display: 'Row ID', name : 'Lastname', width : 100, 
    sortable : true, align: 'left', hide: false} 

:またflexigridのcolModelセットアップにfalseに非表示を設定し

(function ($) { 

    $.fn.showColumn = function (columnName, visible) {   

     if (visible == undefined) visible = true; 

     var grd = this.closest('.flexigrid');   
     var colHeader = $('th[abbr=' + columnName + ']', grd); 
     var colIndex = $(colHeader).attr('axis').replace(/col/, ""); 

     $(colHeader).toggle(visible); 

     $('tbody tr', grd).each(
      function() {     
       $('td:eq(' + colIndex + ')', this).toggle(visible); 
      } 
     ); 
    }; 

    $.fn.hideColumn = function (columnName) { 
     this.showColumn(columnName, false); 
    } 

})(jQuery); 

あなたができるようになりました隠ぺいを起動し、これらを使用して示す:

$('#FlexigridID').hideColumn('ColumnName'); 
$('#FlexigridID').showColumn('ColumnName'); 


visible = !visible; // for toggling need 
$('#FlexigridID').showColumn('ColumnName', visible); 
+0

@Michaeal:私のグリッドでは機能しません。あなたは少し詳しく説明できますか? – nickalchemist

+0

私は私の答えを –

+0

編集しました。私はcolModelをセットアップすることができます。しかし、コードの単一行を探しています。プロジェクトには多くのフレキシグリッドがあり、場合によっては列を非表示にする必要があります。 – nickalchemist

0

これを試してみてください:

$('#FlexigridID').find("tr td").eq(columnIndex).hide(); 
$('#FlexigridID').find("tr td").eq(columnIndex).show(); 
+0

詳細についてはこちらをご覧ください、私は全体の列を非表示にしたいです。あなたのコードの隠れ要素。 – nickalchemist

関連する問題