无论如何在ASP.NET MVC 3中使用Webgrid进行条件格式化吗?
我知道我可以说:
...... grid.Column("PropertyName", "Header Name", style: "bold")
...
它将为TD呈现HTML:class="bold"
。
我想要的是在一种风格中呈现一些TD而在另一种风格中呈现其他TD。喜欢:
...... grid.Column("PropertyName", "Header Name", style: (item) => (item.Property > 100) ? "bold" : "normal"))
....
但是这会导致错误“最佳重载方法匹配......有一些无效的参数。”
知道这是否可行?
由于 吉姆比迪森
答案 0 :(得分:8)
我知道我的答案有点迟了,但是如果有人仍然在寻找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 :(得分: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>
当然,你必须修改每个循环中的逻辑......
希望有所帮助。
答案 2 :(得分:0)
我认为style属性不接受函数。你可以使用jQuery或者这是一个hack:
答案 3 :(得分:0)
对于googler,Torm的改进版本答案:
@grid.GetHtml(
columns: new[]
{
grid.Column(format:item => Html.Raw("<span" + (item.Property > 100 ? " style='bold'" : "") + ">" + item.Property + "</span>")),
}
)