2011-12-02 119 views
4

ビューから非表示にする列を非表示にするにはどうすればよいですか。私はオブジェクトを隠すことでこれを処理しましたが、列には何もないスキンの列としてUIに表示されます。アイテムが描画されないようにする方法はありますか?ASP.Net MVC3を使用してWebgrid内の非表示フィールドの列を非表示にするにはどうすればよいですか?

grid.Column(null, null, format: @<input type="hidden" name="RevisionId" value="@item.LatestRevisionId"/>) 

ありがとうございます。

答えて

6

WebGridヘルパーを使用すると、styleプロパティを使用して個々の列にCSSクラスを適用できます。残念ながら、tbodyセクション内の列を非表示にすることはできますが、列ヘッダーに異なるスタイルを適用することはできません。すべての列に同じスタイルを適用すると、かなり役に立たなくなります。

table th:first-child, table td:first-child { 
    display: none; 
} 

これは、クライアントのブラウザが従来のブラウザの場合ではないかもしれません:first-child擬似セレクタをサポートしていることをあなたが最初の列を非表示にすることを想定して:だから一つの可能​​性は、CSSを使用することです。

だから、場合にあなたがヘッダに隠されたスタイルを適用するためのjQueryを使用して、最初の列の行または単にそれらを直接非表示にすることができ、従来のブラウザをサポートする必要があります。

$(function() { 
    $('table th:first-child, table td:first-child').hide(); 
}); 

あなたがしたい場合はより多くのコントロールがある場合は、MvcContrib GridまたはTelerik Gridをチェックアウトすることをお勧めします。

+0

私はこの方法を試して、それは完全に働いた。列は隠されていますが、問題は 'Webgrid'がページング機能をもたないことです。ページを一番下に表示せずに最初の20レコード(20行が最大行数)のみを表示しています。隠しコラムがレコードの「id」なので、これが起こっていると思いますか? – Hanady

+0

この問題に直面していて、完璧に働いてくれてありがとうと思います – user1557020

+0

複数のテーブルを持っているときに選択する必要があるのは何ですか? – Franziee

0

* 強いテキスト * Darinのソリューションは、「テーブルth:ファーストチャイルド」も(ページングに使用される)hide the "canPage:true" grid footerになります。

解決策は、additional stylingを追加します。あなたの「頭」セクションで

(またはCSSファイル内のすべてのテーブルの上にそれを適用する場合):WebGridのセクションで

<style type="text/css"> 
    .nodisplay {display: none;} 
</style> 

footerStyle : "table-footer", 
... 
grid.Column(null, null, style:"nodisplay", ... 

でCSSファイル:

.table-footer { 
    display: normal 
} 
関連する問題