# Nasłuchiwanie i czyszczenie

* **Nasłuchiwanie i czyszczenie** to mechanizmy umożliwiające definiowanie dynamicznego zachowania komponentów formularza oraz powiązanych z nimi zmiennych. Dzięki nim zmiany w jednym polu mogą automatycznie wpływać na inne pola, komponenty lub wartości w formularzu.
* **Atrybut Nasłuchiwanie (ListeningOn)** – pozwala określić, na które inne komponenty lub zmienne dany komponent „nasłuchuje”. Oznacza to, że zmiana wartości wskazanego komponentu albo zmiennej spowoduje reakcję komponentu nasłuchującego – np. jego ponowne przeliczenie wartości lub odświeżenie widoczności.
* **Atrybut Wyczyszczenie pola (ClearOn)** – definiuje, które zmiany w innych komponentach lub zmiennych wywołają automatyczne wyczyszczenie (usunięcie) wartości danego komponentu. Innymi słowy, jeśli wskazane powiązane pole lub zmienna zmieni swoją wartość, komponent z ustawionym czyszczeniem usunie własną bieżącą wartość (wyczyści pole).
* Oba powyższe atrybuty dostępne są w sekcji **Interakcje** panelu właściwości wybranego komponentu. Konfiguracja odbywa się za pomocą specjalnego okna – należy kliknąć przycisk **Lista** obok pola *Nasłuchiwanie* lub *Wyczyszczenie pola*, co otworzy popup do edycji tych ustawień.

<figure><img src="/files/Gkt1kJmt4VSOfIzU5IWt" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Sekcja "Interakcje"</em></p></figcaption></figure>

* W oknie **Elementy wzbudzające zmianę** (otwieranym przyciskiem **Lista**) wyświetlana jest lista komponentów, na które nasłuchuje dana kontrolka. Listę można zawęzić za pomocą pola filtrowania (**Filtruj...**) u góry okna. Obok każdego dodanego elementu znajduje się ikona kosza – pojawia się po najechaniu kursorem – umożliwiająca usunięcie tego elementu z listy nasłuchiwanych.

<figure><img src="/files/fzdSXqzOGWaCkGNwKdhr" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Okno wyboru elementów do nasłuchiwania</em></p></figcaption></figure>

* Aby dodać nowy element do nasłuchiwania, użyj pola **Dodaj MID** na dole okna. Pole to podpowiada wszystkie dostępne identyfikatory (MID/ID) komponentów oraz zmiennych, na które można nasłuchiwać. Wybierz żądany komponent z listy podpowiedzi (klikając go lub poprzez zatwierdzenie klawiszem Enter). Wybrany element zostanie dodany do listy, a w opisie atrybutu Nasłuchiwanie w panelu właściwości pojawi się informacja o liczbie elementów nasłuchiwanych (np. *Nasłuchiwania: 1*).

<figure><img src="/files/yhUAmWLTleOUVyO65jv9" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Wskazywanie elementu do dodania</em></p></figcaption></figure>

* *Uwaga:* Jeśli w logice komponentu używane są walidatory, usługi lub warunki (widoczności, aktywności, wymagalności) odwołujące się do wartości innych pól bądź zmiennych, należy **prawidłowo ustawić Nasłuchiwanie (oraz ewentualnie Wyczyszczenie pola)** dla tych zależności. W przeciwnym razie zmiany w powiązanych polach nie będą automatycznie uwzględniane przez dany komponent.

### Przykłady zastosowania

* **Automatyczne przeliczenie pola** – Pole obliczeniowe (np. suma dwóch wartości) nasłuchuje na zmiany pól źródłowych. Jeśli użytkownik zmieni wartość w którymś z pól składowych, pole sumy automatycznie przeliczy swoją wartość na nowo.
* **Dynamiczna widoczność sekcji** – Sekcja formularza wyświetlana warunkowo (np. dodatkowe szczegóły pokazywane po zaznaczeniu checkboxa *„Pokaż więcej”*) powinna nasłuchiwać na to pole wyboru. Dzięki temu zmiana stanu checkboxa od razu spowoduje ponowną ocenę warunku i ukrycie lub pokazanie sekcji zgodnie z jego definicją.
* **Resetowanie wartości pola zależnego** – Pole które powinno zostać wyczyszczone po zmianie innego wyboru korzysta z atrybutu *Wyczyszczenie pola*. Przykładowo, pole *„Model samochodu”* może nasłuchiwać na pole *„Marka samochodu”* oraz mieć ustawione czyszczenie względem niego. Zmiana marki spowoduje automatyczne usunięcie wybranej wcześniej wartości modelu, aby użytkownik wybrał nowy model pasujący do zmienionej marki.
* **Odświeżanie listy dokumentów po zmianie strony** – Komponent *Lista dokumentów* (DocumentList) może nasłuchiwać na zmienną `currentPageMid` (identyfikator bieżącej strony formularza). Powoduje to, że przy przejściu do innej strony wniosku komponent ponownie załaduje/odświeży swoje dane. Dzięki temu unikniemy sytuacji, w której wyświetlany jest nieaktualny zestaw dokumentów (np. wydruków) po zmianie strony.

### FAQ

* **P:** Czym się różnią atrybuty *Nasłuchiwanie* i *Wyczyszczenie pola*?\
  **O:** *Nasłuchiwanie* powoduje, że komponent reaguje (przelicza się lub odświeża) w odpowiedzi na zmianę wartości określonego innego pola lub zmiennej. Natomiast *Wyczyszczenie pola* powoduje automatyczne wymazanie bieżącej wartości komponentu, gdy zmieni się wskazane powiązane pole lub zmienna.
* **P:** Czy muszę ustawić nasłuchiwanie, jeśli mój komponent wykorzystuje warunek lub walidator odwołujący się do innego pola?\
  **O:** Tak. Jeżeli logika komponentu (np. warunek widoczności lub wymagalności, skrypt walidatora, itp.) korzysta z wartości innego pola bądź zmiennej, to komponent **musi nasłuchiwać** na ten element. W przeciwnym razie zmiany wartości tamtego pola nie będą uwzględniane na bieżąco – warunek czy walidacja nie zareaguje na zmienione dane.
* **P:** Ustawiłem atrybut *Wyczyszczenie pola*, ale pole nie usuwa wartości przy zmianie powiązanego komponentu – dlaczego?\
  **O:** Najprawdopodobniej brakuje atrybutu nasłuchiwania. Aby czyszczenie pola zadziałało poprawnie, komponent docelowy musi **również nasłuchiwać** na wskazany element wyzwalający zmianę. Innymi słowy, w konfiguracji komponentu należy dodać *Nasłuchiwanie* **wraz z** *Wyczyszczeniem pola* odnosząc je do tego samego komponentu, którego zmiana ma czyścić wartość.
* **P:** Jak dodać lub usunąć element na liście nasłuchiwanych dla danego komponentu?\
  **O:** Należy otworzyć okno konfiguracji nasłuchiwania – w panelu właściwości kliknąć **Lista** obok atrybutu *Nasłuchiwanie*. W oknie **Elementy wzbudzające zmianę** nowy element dodajemy poprzez pole **Dodaj MID** (wpisując lub wybierając z listy odpowiedni komponent/zmienną i zatwierdzając Enterem). Aby usunąć element z listy nasłuchiwania, wystarczy najechać kursorem na jego nazwę w tym oknie i kliknąć ikonę kosza obok niej.
* **P:** Na jakie elementy można nasłuchiwać?\
  **O:** Komponent formularza może nasłuchiwać na zmiany **innych komponentów** (pól formularza) oraz na **zmienne sesyjne** powiązane z formularzem. Podczas konfiguracji w oknie nasłuchiwania dostępna jest pełna lista ID/MID wszystkich pól i zmiennych, które można wybrać jako źródła nasłuchu.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/interfejs-uzytkownika/formularze/dynamicznosc-formularza/nasluchiwanie-i-czyszczenie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
