2017-05-30 1 views
1

J'utilise la grille de kendo. Certaines des données que je reçois comportent une balise de script. J'ai défini la propriété codée de la colonne sur true. Cependant, il ne code pas de script.Grille de Kendo incapable de gérer les données de l'étiquette de script

Vous pouvez essayer cette petite poche.

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

Puis-je demander * pourquoi * les balises de script? – DontVoteMeDown

+0

Je reçois ces données d'étiquette de script d'une autre source que je ne peux pas contrôler – PSR

Répondre

2

Essayez de dépouiller ces <script> balises dans l'événement dataSource.schema.parse, où vous pouvez manipuler les données de dataSource avant qu'il a été utilisé pour rendre le widget:

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

     return data; 
    } 
} 

Notez que le replace est fait spécifique pour <script> balises, les autres tags ne seront pas gérés. Regex n'est pas la meilleure façon de gérer html, mais dans le cas d'un tag spécifique c'est ok.

Demo