9
votes

Comment puis-je modifier la couleur d'arrière-plan d'une cellule dans un formateur personnalisé JQGRID?

Je peux changer la couleur du texte en faisant cela dans la formatrice personnalisée JQGRID:

function YNFormatter(cellvalue, options, rowObject)
{
    var color = (cellvalue == "Y") ? "green" : "red";
    var cellHtml = "<span style='color:" + color + "' originalValue='" +
                                cellvalue + "'>" + cellvalue + "</span>";

    return cellHtml;
 }


6 commentaires

@harshhhh - J'ai ajouté un autre commentaire


Vous devriez simplement utiliser 'fond-couleur' ​​ au lieu de 'couleur' ​​ et définir un style supplémentaire 'arrière-arrière-image': "Aucun" Pour supprimer L'image d'arrière-plan héritée de la classe UI-widget UI de la classe UI de jQuery. Si vous voulez, utilisez en outre une couleur standard pour planer ou / et sélectionner des lignes sélectionnées, vous pouvez utiliser la technique que j'ai décrite dans Stackoverflow.com/questions/4956949/...


@Oleg - L'arrière-plan est uniquement pour la portée (pas la cellule TD totale)


@OOO: Dans votre question que vous avez écrite, que vous voulez / devez utiliser des formateurs personnalisés. Le texte renvoyé par le formateur personnalisé sera placé dans la cellule . Donc, dans la façon dont vous n'avez aucune chance de changer le lui-même. Maximum de ce que vous pouvez faire est de placer n'importe quel élément comme qui pourrait avoir la taille de l'ensemble du (dépend de la CSS utilisée). Dans le cas, le fond de sera vu pour l'utilisateur exactement comme l'arrière-plan des cellules. Utilisation de formateurs personnalisés, vous ne pouvez pas faire plus.


@OOO: Pour faire tout clair, j'ai écrit ma réponse.


@Oleg - Merci pour l'exemple (et votre patience) .. très utile en effet


3 Réponses :


0
votes

ici xxx

en réalité, vous n'avez même pas besoin de formateur personnalisé, si vous souhaitez simplement le faire pour définir des couleurs. Vous pouvez même définir la valeur de couleur d'ici comme, xxx

codage heureux.


5 commentaires

@harshh - Dites-vous de mettre cette ligne dans ma fonction de code de formateur personnalisé?


@HARSHH - Je veux en fait le faire sous forme de formateur personnalisé, car j'ai une logique conditionnelle basée sur d'autres propriétés de données. De plus, où obtenez-vous la ligne, la colonne et la valeur?


@OOO: Vous ne devez pas utiliser le formateur personnalisé. Au lieu de cela, vous pouvez modifier la couleur d'arrière-plan de certaines cellules à l'intérieur de ChargetComplete événement. Vous pouvez obtenir des identifiants des données chargées en ce qui concerne la méthode getdataids , puis obtenir les données de cellule dans une boucle avec getcell examinez là et changez de style de cellule avec setCell Utilisation de la chaîne vide en tant que paramètre de données (voir trirand.com /jqgridwiki/doku.php?id=wiki:Methods pour plus de détails). Vous pouvez également utiliser 'formateur: case à cocher' en outre.


Vous pouvez utiliser des fonctionnalités JQGrid que vous aimez. L'utilisation de la mise en forme personnalisée est en général pour produire un code HTML pour une cellule. Pour définir la couleur d'arrière-plan, il suffit de définir une classe CSS sur la cellule. Je définirais dans vous CSS Deux classes "Redbackground" et "Greenbackground" et installés sur la cellule une seule des classes. En tant que formateur, je vais utiliser 'Formatter: case à cocher'. Vous pouvez faire ce que vous préférez.


@Oleg - Je fais cela en combinaison avec un autre formatage de texte sur la cellule, donc j'utilise déjà un formateur personnalisé. À cause de cela, j'espérais qu'il y avait une ligne supplémentaire qui m'a permis d'ajouter de la couleur d'arrière-plan dans cette fonction de formateur personnalisée.



1
votes

Voici ce que j'ai fait: xxx


0 commentaires

20
votes

Si vous souhaitez utiliser Elément à l'intérieur du formateur de cellule personnalisé, vous pouvez revenir à partir du formateur personnalisé xxx

où le style de .Cellwithoutbackgroundground Vous pouvez définir par exemple comme suit xxx

Comment ça fonctionne Vous pouvez voir vivre ici : Entrez la description de l'image ici

Mise à jour: La réponse est vieille . La meilleure pratique serait d'utiliser cellattr rappel dans colmodel au lieu de l'utilisation des formateurs personnalisés. Changer de couleur de fond de la cellule est en général attribuant simplement une attribution ou class sur les cellules de la colonne ( éléments). Le rachat Cellattr défini dans la colonne de colmodel permet exactement de le faire. On peut toujours utiliser formateurs prédéfinis comme formateur: "Cochez la case" , formateur: "devise" , formateur: "date" et ainsi de suite, mais change toujours la couleur de fond dans la colonne. De la même manière, le rappel rowattr , qui peut être défini comme l'option JQGrid (en dehors de la colonne spécifique de colmodel ), permet d'attribuer de style / classe de la rangée entière ( éléments).

Plus d'informations sur CellatTR peut être trouvé Ici et ici , par exemple. Une autre réponse explique rowattr .


0 commentaires