English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Oggetti UI
  • Libreria Tree
  • Nodi

On Change Selection

evento copia link

Condizioni di notifica

Evento notificato dall'albero quando cambia lo stato di selezione di un nodo in un albero che abbia la Multi-selezione attivata. Tale evento viene notificato unicamente se l'utente ha effettivamente cliccato sul check-box della multi-selezione e non se il programma ha effettuato una chiamata alla procedura SelectNode dell'albero.

Utilizzo consigliato

L'evento di OnChangeSelection può essere utilizzato per aggiornare le parti dell'interfaccia utente che dipendono dallo stato di selezione dei nodi. Può anche essere utilizzato per selezionare altri nodi in conseguenza della selezione effettuata dall'utente.

Argomenti

HashKey E' una stringa che identifica il nodo che è stato selezionato. Per sapere cosa è un HashKey puoi leggere il paragrafo "Identificazione dei nodi: la proprietà HashKey" dell'articolo Nodi dell'albero.
Selezionato E' un valore booleano che indica se il nodo è stato selezionato o deselezionato.
Cancel E' un parametro di uscita booleano. Se lo si imposta a True si impedisce la selezione del nodo.
Final E' un valore booleano introdotto a partire dalla versione 7.1.3300. L'evento OnChangeSelection viene chiamato per ogni nodo per cui cambia lo stato di selezionato più una volta al termine dell'operazione. Durante quest'ultima chiamata il parametro Final vale True.

Esempio di codice

// *********************************************************************
// Fired when a user selects a node using the Multiple Selection feature
// *********************************************************************

event AlberoCategorie.Categorie.OnChangeSelection(
  string SourceHash    // Hash Code of the node that has been expanded
  boolean Selected     // True if the node has been selected
  inout boolean Cancel // Set to TRUE to cancel the selection
)
{
  string NomeNodoSelezionato = "" // 
  // 
  // Se è cambiato lo stato di selezione di una categoria, la propago a tutti i
  // suoi prodotti

  if Left(SourceHash, C3) = CAT
  {
    int i = 0 // 
    // 
    // Espando il nodo delle categorie, qualora non fosse ancora stato espanso

    Categorie.ExpandNode(SourceHash, ??, ??)
    // 
    // Giro su tutti i nodi figli della categoria selezionata

    i := ZERO
    while i < Categorie.GetChildrenNodeCount(SourceHash)
    {
      string h = "" // Hash Code del nodo
      // 
      h := Categorie.GetChildrenNode(SourceHash, i)
      Categorie.SelectNode(h, Selected)
      // 
      i := i + ONE
    }
  }
  // 
  // Se è stato selezionato un prodotto, seleziono anche la categoria che lo
  // contiene

  if Left(SourceHash, C3) = PRO AND Selected
  {
    string h = "" // 
    // 
    // Recupero l'HashCode del nodo padre (una categoria)

    h := Categorie.GetParentNode(SourceHash)
    // 
    // Seleziono il nodo padre

    Categorie.SelectNode(h, True)
  }
  // 
  // Calcolo il nome del nodo selezionato

  NomeNodoSelezionato := GetNodeName(SourceHash)
  // 
  // Inserisco un nuovo evento

  insert values into Eventi
    set Descrizione := FormatMessage(MSG Cambiata Selezione, NomeNodoSelezionato, ??, ??, ??, ??)
    set AppTick := ClickCounter()
}
  • Questo evento viene notificato unicamente se è stata attivata la multi-selezione dei nodi mediante il parametro MultipleSelection.
  • Attenzione: L'evento viene notificato solo se il contenuto dell'albero non è document-oriented ma proviene direttamente da query su database.
  • Questo evento non viene notificato se lo stato di selezione viene modificato mediante chiamate alle procedure SelectNode o SelectAll.
  • Se il parametro Active dell'albero è True subito dopo aver cliccato sul check-box il browser informa il server dell'avvenuta selezione o deselezione.
  • A partire dalla versione 7.1.3300 l'evento viene notificato una volta per ogni nodo che è stata selezionato o deselezionato, più una volta al termine della modifica della selezione. Quest'ultima fase può essere usata per aggiornare l'albero o agire sull'intera selezione.

Ultima modifica: 28/11/2022 / Validità: da 6.5.2680

Vedi Anche

  • Select Node (procedura)
  • Select All (procedura)
  • Active (proprietà)
  • Multiple Selection (proprietà)
  • Nodi

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum