Kendo网格无法处理脚本标记数据

时间:2017-05-30 09:46:58

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我正在使用kendo网格。我得到的一些数据中有脚本标记。我已将列编码属性设置为true。它仍然不是编码脚本标记。

你可以尝试这个小小的。

<div id="grid"></div>
<script>
$("#grid").kendoGrid({
  columns: [
    { field: "name", encoded: true }
  ],
  dataSource: [ { name: "<script>Jane Doe</script>" } ]
});
</script>

1 个答案:

答案 0 :(得分:2)

尝试剥离dataSource.schema.parse事件中的<script>个代码,在这些代码中,您可以在使用dataSource数据渲染小部件之前对其进行操作:

schema: {
    parse: function(data) {
        data.forEach(x => x.name = x.name.replace(/<(\/?)script>/g, ''));

        return data;
    }
}

请注意,replace专用于<script>代码,其他代码无法管理。正则表达式不是处理html的最佳方式,但是如果是特定标签,它还可以。

Demo