Zdarzenie przycisku

obraz.png

Dostosowywanie przycisków za pomocą Ninext

Dzięki Ninext można zmienić wygląd przycisków Ninox, definiując funkcję o nazwie onUpdate w wyzwalaczu „Display only if”. Funkcja ta musi zwrócić obiekt opisujący elementy wizualne do zmiany, a skrypt musi kończyć się wartością logiczną wskazującą, czy przycisk ma być wyświetlany.

W ten sposób można:

  • Zmienić etykietę przycisku.
  • Zaktualizować podpowiedź (tytuł) przycisku.
  • Zmienić kolor przycisku przy użyciu predefiniowanych klas.
  • Wyświetlić plakietkę uwypuklającą ważną informację.

Krótki przegląd właściwości JSON

WłaściwośćOpisPrzykład / zastosowanie
captionTekst wyświetlany na przycisku."Send" / "Cancel"
tooltip lub titleTekst pokazywany po najechaniu, jako podpowiedź."Click to send"
buttonColorKlasa koloru stosowana do przycisku (np. "blue", "red", "grey")."blue"
badgeObiekt opisujący plakietkę wyświetlaną na przycisku.Zobacz szczegóły poniżej
badge.captionTekst, liczba lub symbol wyświetlany na plakietce."3" or "!"
badge.colorKolor plakietki (domyślny lub własny)."red" or "#4970ff"

Ogólny przebieg pracy

  1. Zdefiniuj funkcję onUpdate
    W kodzie wyzwalacza „Display only if” przycisku zadeklaruj funkcję o nazwie onUpdate. Funkcja ta zwraca obiekt (w formacie JSON) opisujący elementy do zmiany.
  2. Zwróć wartość logiczną odpowiadającą za widoczność
    Wyzwalacz musi kończyć się zwróceniem wartości logicznej (true lub false), wskazującej, czy przycisk ma być wyświetlany.
  3. Ninext stosuje zmiany
    Gdy rekord zostaje otwarty lub odświeżony, Ninext wykonuje funkcję onUpdate, odczytuje zwrócony obiekt i dynamicznie stosuje zmiany wyglądu przycisku.

Zastosowanie

Pojedynczy blok kodu w wyzwalaczu „Display only if”

"Declaration of the onUpdate function that customizes the button";
function onUpdate(buttonValues : any) do
 let count := this.Count;
 {
      caption: if count > 0 then
          "Send (" + count + ")"
      else
          "Send"
      end,
      tooltip: "Click to send your request",
      buttonColor: if count > 0 then "red" else "blue" end,
      badge: {
           caption: if count > 0 then text(count) else "" end,
           color: "red"
      }
 }
end;

"Determination of the button's visibility";
this.Count >= 0

Komentarze:

  • Funkcja onUpdate buduje obiekt pozwalający zmienić etykietę przycisku (ze wskaźnikiem liczbowym, jeśli Count jest dodatnie), podpowiedź, kolor przycisku oraz wyświetlić plakietkę.
  • Końcowy blok kodu zwraca wartość logiczną określającą, czy przycisk ma być wyświetlany.

Przykład minimalny (sama plakietka)

"Declaration of the onUpdate function to display only a badge";
function onUpdate(buttonValues : any) do
 let newItems := this.newItems;
 {
      badge: {
           caption: if newItems > 0 then text(newItems) else "" end,
           color: "red"
      }
     }
end;
"The button is always displayed";
true

Komentarze:

  • Zwracana jest wyłącznie właściwość badge, aby wyświetlić wartość, gdy NewItems jest większe od 0.
  • Przycisk jest wyświetlany bezwarunkowo.

Ważne uwagi

  • Końcowa wartość logiczna
    Bez zwrócenia na końcu true lub false przycisk nie będzie widoczny.