Maison > interface Web > tutoriel CSS > le corps du texte

Comment appliquer dynamiquement des couleurs au contrôle de texte SAP.m en fonction de valeurs booléennes ?

Susan Sarandon
Libérer: 2024-10-31 06:30:30
original
266 Les gens l'ont consulté

How to Dynamically Apply Colors to SAP.m Text Control Based on Boolean Values?

Liaison dans Control avec l'attribut "class" - Une solution de contournement avec des données personnalisées

Cette question aborde le défi de l'application dynamique de couleurs aux valeurs dans un contrôle Texte SAP.m basé sur leurs valeurs booléennes. Bien que le code XML suivant semble logique, il ne parvient pas à modifier la classe du contrôle :

<code class="xml"><Text
  class="{= ${HintTable>IS_ENABLED} === 'TRUE' ? 'greenTextColor' : redTextColor'}"
  text="{HintTable>IS_ENABLED}"
/></code>
Copier après la connexion

UI5 n'autorise pas la liaison directe de classe dans les vues XML. Cependant, il existe une solution de contournement en utilisant des données personnalisées :

  1. Ajouter des données personnalisées avec writeToDom Set :
    Inclure un élément de données personnalisé dans votre contrôle :

    <code class="xml"><ControlXYZ class="myControl">
      <customData>
        <core:CustomData xmlns:core="sap.ui.core"
          writeToDom="{= expression }"
          key="green"
          value=""
        />
      </customData>
    </ControlXYZ></code>
    Copier après la connexion
  2. Définir le sélecteur CSS :
    Ajoutez un sélecteur correspondant dans votre CSS :

    <code class="css">.myApp .sapControlXYZ.myControl[data-green] { /* ... */ }</code>
    Copier après la connexion

Cela ajoutera data-green à l'élément HTML du contrôle en fonction de la liaison d'expression dans writeToDom. Le navigateur peut alors modifier la couleur en conséquence.

Exemple :

<code class="xml"><Text
  class="myControl"
  text="{value}"
>
  <customData>
    <core:CustomData xmlns:core="sap.ui.core"
      writeToDom="{= ${value} === 'TRUE' }"
      key="green"
      value=""
    />
  </customData>
</Text></code>
Copier après la connexion
<code class="css">.myApp .sapText.myControl[data-green] { color: green; }
.myApp .sapText.myControl:not([data-green]) { color: red; }</code>
Copier après la connexion

Attention :

SAP recommande de ne pas utiliser de CSS personnalisé, en particulier pour les contrôles avec des couleurs ou des formats prédéfinis. La personnalisation des styles peut avoir un impact sur la cohérence de l'application et augmenter les efforts de maintenance. Consultez les parties prenantes avant de modifier les styles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!