2010-12-20 54 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結合這裏的服用點的作品:

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

這是有條件的文字,而不是條件格式/造型。我認爲他正在嘗試改變風格 – 2013-04-10 20:41:22

0

我不認爲style屬性接受函數。您可以使用jQuery或這裏是一個黑客:

Hack

0

對於Google員工,在託姆答案的改進版本:

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