2017-08-08 2 views
0

Im utilisant la boîte à outils moderne avec extjs 6.5.1. Je souhaite utiliser la propriété renderer dans une cellule de la grille pour utiliser html. Le moteur de rendu renvoie simplement '<a>...</a>' mais lorsque j'utilise ceci, il code le code html afin que la cellule affiche '<a>...</a>' au lieu d'un lien. En ce qui concerne les réponses sur ce thread, j'ai besoin d'une propriété de cellule avec "encoderHtml" à false mais dès que j'ajoute une propriété de cellule le renderer ne sera plus exécuté (même lorsque j'utilise EncodeHtml) et montre les données aucune propriété de rendu. Pourquoi ne puis-je plus utiliser la propriété renderer?Le moteur de rendu extjs n'est pas exécuté

Heres mon code:

{ 
    xtype: 'gridcolumn', 
    renderer: function(value, record, dataIndex, cell, column) { 
     console.log('hello world'); 
     return '<a>...</a>'; 
    }, 
    width: 30, 
    text: '...', 
    cell: { 
     xtype: 'textcell', 
     encodeHtml: false 
    } 
} 

What it looks like without encodeHtml

Répondre

0

Ce comportement est dû au fait que vous spécifiez

cell: { 
    xtype: 'textcell' 
} 

en premier lieu. Supprimez-le simplement, et votre renderer peut renvoyer le code HTML. Cela devrait fonctionner:

{ 
    xtype: 'gridcolumn', 
    renderer: function(value, record, dataIndex, cell, column) { 
     console.log('hello world'); 
     return '<a>...</a>'; 
    }, 
    width: 30, 
    text: '...' 
} 

Au moins id fait dans ma demande, où j'utilise renderer s retour html pour générer un formatage spécial.

Si vous devez spécifier la propriété cell, à cause de quelque chose que vous ne présentez pas dans votre code, utilisez la valeur par défaut cellxtype à la place: gridcell.

+0

J'ai besoin de la propriété de cellule pour la propriété encodeHtml qui est requise, sinon le moteur de rendu retournera du texte en clair affichant " ..." dans la cellule au lieu d'un lien. Comme j'utilise Sencha Architect je ne peux pas changer le xtype en gridcell. –

+0

J'ai été capable de changer manuellement le xtype en gridcell en manipulant le code. Merci pour l'aide! –