我有一个带有详细模板的剑道网格。这是剑道MVC网格。我从服务器获得了一些带有html文本的数据。
让我们说父网格数据就像这个“<span class='text-red'>Test</span>
”
在父网格中,我像这样绑定此列。
columns.Bound(m => m.Name).ClientTemplate("#if(Name=== ''){# - #}else{# #=Name# #}#");
这会给我输出Test
在这个网格的详细模板中,我使用子网格Read方法获得了一些其他数据,该方法也有一些html数据。让孩子网格得到“<span class='text-green'>Hi</span>
”
我正在绑定这样的数据。
columns.Bound(m => m.ChildName).ClientTemplate("\\#if(ChildName== ''){\\# - \\#}else{\\# \\#=ChildName\\# \\#}\\#")
但是这给了我<span class='text-green'>Hi</span>
的输出,但我希望输出只是Hi
。为什么它显示整个HTML?为什么它不像父网格那样对待?我希望文本Hi
与css一起应用,就像父网格一样
答案 0 :(得分:0)
解决。子网格读取编码html的调用。我正在获取"<span class=''>Test</span>"
等数据。所以我修改了子网格clientTemplate来调用java-script函数,它将提供正确的数据。
columns.Bound(m => m.ChildName).ClientTemplate("\\#=escapeNameEncode(ChildName)\\#")
JavaScript函数
escapeNameEncode(name: string) {
if ($.trim(name) == '') {
return '-';
} else {
var decodedString = $('<div>').html(name).text();
return decodedString;
}
}
答案 1 :(得分:0)
将.Encoded(false)设置为向下钻取列:
columns.Bound(m => m.ChildName).ClientTemplate("\\#if(ChildName== ''){\\# - \\#}else{\\# \\#=ChildName\\# \\#}\\#").Encoded(false)