Vous pouvez utiliser formatter
dans la grille de dojo pour mettre en forme le code HTML affiché dans chaque cellule. Lors de la création de la grille, vous pouvez définir un formatter
pour chaque colonne. Le formatter
est une fonction JavaScript qui prend deux paramètres, le premier value
signifie la valeur de la cellule, le second rowIndex
signifie l'index de la ligne en cours. La valeur de retour de la fonction formatter
correspond au contenu HTML affiché dans la cellule.
Pour votre cas, je vous suggère d'utiliser une seule colonne pour l'URL du lien et le texte d'ancrage. Vous pouvez utiliser un codage simple, comme http://www.google.com$$$Clicky
, où $$$
est utilisé pour séparer ces deux champs. Le code PHP serait:
$link = "http://www.google.com$$$Clicky";
Ensuite, dans votre fonction formatter
, vous pouvez utiliser:
function(value, rowIndex) {
var parts = value.split('$$$');
return "<a href='" + parts[0] + "'>" + parts[1] + "</a>";
}
Si vous préférez utiliser une colonne pour chaque champ, par exemple url
pour l'URL et anchorText
pour le texte d'ancrage. Ensuite, vous devez obtenir la valeur d'une autre colonne lors du formatage de la cellule. Supposons que la grille utilise le champ url
. Alors la fonction formatter
peut ressembler à ci-dessous:
function(value, rowIndex) {
var item = grid.getItem(rowIndex); // Get the store item by index, need the reference of the grid.
var anchorText = grid.store.getValue(item, 'anchorText');
return "<a href='" + value + "'>" + anchorText + "</a>";
}
Merci pour l'explication impressionnante. J'ai fini par utiliser le escapeHTMLInData = "false", cependant .. mais gardera la fonction de formatage à l'esprit pour plus tard! :) – Paul
Ah, escapeHTMLInData = 'faux', je ne le savais pas avant. Merci pour l'information. :) –