Esempio di drag and drop su calendario

Utilizzando codice Javascript è possibile utilizzare il drag and drop sull’oggetto Calendario per consentire all’utente di creare attività a partire da un elenco.

ESEMPIO 1: DRAG & DROP DA LISTBOX

E’ possibile scaricare da qui una query di esempio che include un form dove è presente un calendario suddiviso su tre risorse, e una lista di attività che è possibile trascinare sul calendario per creare nuovi elementi.

Si suggerisce di esaminare i seguenti eventi:

EventoRenderClient: contiene l’abilitazione del drag and drop sull’oggetto Listbox1. Da notare che viene assegnato l’evento “itemDrop” dell’oggetto, il quale alimenta 3 campi esterni che riportano la descrizione dell’attività trascinata e la data e l’ora e la risorsa della cella di calendario sulla quale l’elemento è stato trascinato. Viene poi attivato un postback che esegue l’evento Execute dell’oggetto ProcedureCode1, il quale crea l’elemento nel calendario a partire dai 3 suddetti campi.

EventoRender: restringe le ore visualizzate sul calendario alle sole ore lavorative. Ovviamente questo può essere modificato secondo le esigenze.

ESEMPIO 2: DRAG & DROP DA GRIGLIA CON NUOVOLAYOUT=FALSE

E’ possibile scaricare da qui una query di esempio che include un form dove è presente un calendario suddiviso su tre risorse, e una lista di attività in una griglia dove è possibile selezionarne più di una e trascinarla sul calendario per creare nuovi elementi.

In questo caso, l’EventoRenderClient contiene l’abilitazione del drag sulla griglia, e del drop sulle celle del calendario.

ESEMPIO 3: DRAG & DROP DA GRIGLIA CON NUOVOLAYOUT=TRUE

In questo caso la gestione del Drag&Drop è molto più semplice, in quanto sulla griglia è sufficiente assegnare a True la proprietà ConsentiTrascinamento, assegnando poi la funzione externalDrop dell’oggetto Calendario per gestire l’aggiunta dell’elemento. I valori dei campi della griglia si possono facilmente reperire nel parametro Dati, come nel seguente codice, che va inserito nell’EventoRenderClient.

$('#<Scheduler1>').externalDrop(
  function(data,risorsa,dati) {
    $('#<PianificaCommessa>').ServerExecute(data.toJSON(),risorsa,dati.Commessa)
  }
)