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) } )