2010-12-20 83 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>")), 
    } 
)