ビューテーブルの列全体を表示/非表示にする方法はありますか?
Exclude from Displayexcludes the column that can'd show again、だから私は Views Dynamic Fields Module toを使用しています最初に列を除外し、フィルターがチェックされたときに表示します。図のように、Views Dynamic Fieldsモジュールを使用して列が非表示になっているときの初期ビュー。
Nick Nameチェックボックスをオンにすると、列は次のように表示されます。
ただし、Name列を完全に非表示にしたいニックネームが表示されます。
私は最初にjQueryでそれを試しました:
// Hide the Name Column when Nick Name is shown
$('#edit-dyfield-field-girls-nickname').change(function() { // id of checkbox
if ($('#edit-dyfield-field-girls-nickname').is(':checked')) {
$('.views-field-title').hide(); // Title points to Name field so all the th td have this class in Name
}
});
ただし、NameとNick Nameの両方がしばらく非表示になり、両方のフィールドが再び表示されます。
すべてのソリューションDrupalに基づくか、jQuery/JavaScriptを使用したいくつかのトリックで問題ありません。ありがとうございます。
これがThe Drupal Wayであるかどうかはわかりませんが、jQuery hide()
およびshow()
で修正しました。
// Hide the Name Column when Nick Name is shown
$('#edit-dyfield-field-girls-nickname').change(function() {
if ($('#edit-dyfield-field-girls-nickname').is(':checked')) {
$(document).ajaxStop(function() { // Forcefully stopping Ajax function in the page as other ajax load was main culprit in my case
$('.views-field-title').hide();
});
}
if ($('#edit-dyfield-field-girls-nickname').is(':not(:checked)')) {
$(document).ajaxStop(function() {
$('.views-field-title').show();
});
}
});
注:上記の例ではjQuery toggle()
が機能しないため、2つのif(){}
ステートメントをCheckに配置する必要がありますおよびUnCheck。
Views MediaTable モジュールを使用できます。
これが正確なユースケースであるかどうかはわかりません。これにより、ユーザーは表示したい列を選択できます。
ビューMediaTableはMediaTable( http://consulenza-web.com/jquery/MediaTable/ )の機能をビューモジュールテーブル表示に統合し、エンドユーザーが特定の列の表示または非表示を選択できる、動的で応答性の高いビューテーブルの作成。このモジュールを使用すると、特定のテーブル列が応答して動作し、関連性の低いデータを小さい画面サイズで非表示にすることができます。
あなたが使用したjsコードもトリックをするはずです。しかし、あなたが直面している問題はajaxのロードによるものです。したがって、drupalの動作を入力する必要があるため、ajax呼び出しの後でも呼び出されます。
Jsの追加に関する詳細については、以下のリンクをチェックしてください。
Drupal 7 でJavaScriptを管理する