我有一个简单的网格,我想要设置 4 列,如果显示"is"则它为绿色,如果显示“否”则它为红色,这些是这些列唯一可以显示的 2 个值
c.Bound(x => x.col1);
c.Bound(x => x.col2)
.Title("col2 example");
c.Bound(x => x.col3)
.Title("col3 example");
c.Bound(x => x.col4)
.Title("col4 example");
c.Bound(x => x.col5)
.Title("col5 example");
col2-5 是有问题的
col1 = x.col1,
col2 = (x.col2Id.HasValue) ? "Yes" : "No",
col3 = (x.col3Id.HasValue) ? "Yes" : "No",
col4 = (x.col4Id.HasValue) ? "Yes" : "No",
col5 = (x.col5) ? "Yes" : "No"
ofc 所有的 col... 都有不同的名字,但这样是匿名的。
编辑 - 尝试了我最新项目中的代码发现,客户端模板 = 将始终只在那些字段中显示为绿色"is",服务器模板 = 现在将显示在字段 <span style='color:green'>Yes</span>
中如果该字段要显示 yes 和 <span style='color:red'>No</span>
如果该字段是要显示没有。
所以这两段代码都不起作用,我当时和现在使用它们的唯一区别是我现在使用的是 mvc3。
编辑 2 - 无论是最新版本的 telerik 还是其他我不知道的变化,但如果我将客户端模板代码更改为如下所示,问题就解决了。
.ClientTemplate("<# if(Col2 == 'Yes') { #><span style='color:green'>Yes</span><# } else { #><span style='color:red'>No</span><# } #>")
最佳答案
您应该使用服务器或客户端模板来实现相同的目的(取决于您的网格的绑定(bind))。这是服务器模板:
c.Bound( x => x.col4).Template( x =>
{
%>
<%= (x.col4.HasValue ? "<span style='color:green'>Yes</span>" : "<span style='color:red'>No</span>") %>
<%
});
这是一个客户端模板:
c.Bound( x => x.col4).ClientTemplate("<# if(col4) { #><span style='color:green'>Yes</span><# } else { #><span style='color:red'>No</span><# } #>");
关于c# - Telerik 网格自定义格式更改显示的文本颜色如果 "Yes"绿色如果 "No"红色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4471960/