2010-12-20 18 views
7

ASP.NET MVC 3でWebgridで条件付き書式を設定する必要はありますか?ASP.NET MVC 3 WebGrid - 条件付き列の書式設定

は、私が言うことができます知っている: ... grid.Column("PropertyName", "Header Name", style: "bold") ...

、それはHTMLをレンダリングしますと言っているTD用:class="bold"が。

私が欲しいのは、あるスタイルのTDと別のスタイルの他のTDをレンダリングすることです。次のようになります。 ... grid.Column("PropertyName", "Header Name", style: (item) => (item.Property > 100) ? "bold" : "normal")) ....

しかし、これにより、「最適なオーバーロードされたメソッド一致には無効な引数がいくつかあります。」というエラーが発生します。

可能かどうか

おかげ .Jim Biddison

答えて

5

あなたは、いくつかのjQueryを使ってこれを行うことができます。もちろん

<script type='text/javascript'> 
    $(document).ready(function() { 
     jQuery.each($('tbody tr td'), function() { 
      if (this.textContent == "some value") { 
       $(this).addClass("some class"); 
      } 
     }); 
    }); 
</script> 

を、あなたは、各ループ内のロジックを変更する必要があります...

希望が役立ちます。

7

は、私は一種の後期答えを持つんだけど、誰かがまだWebGridのために結合条件整形/列の値のようなものを探している場合は、ここで働くsomehtingだ:私はしないでください

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column(format: (item) => (item.someproperty !=null) ? 
     Html.Raw("I've got value") : 
     Html.Raw("I don't :(")) 
    ) 
) 
+1

これは条件付きのテキストではなく、条件付き書式/スタイリングですが。私は彼がスタイルを変えようとしていると思う –

0

スタイルプロパティが関数を受け入れると思う。あなたはjQueryのを使用することができますか、ここにハックです:Google社員がために

Hack

0

、TORMの答えの改良版:

@grid.GetHtml(
    columns: new[] 
    {  
     grid.Column(format:item => Html.Raw("<span" + (item.Property > 100 ? " style='bold'" : "") + ">" + item.Property + "</span>")), 
    } 
)