{"id":36596,"date":"2024-04-03T17:21:30","date_gmt":"2024-04-03T15:21:30","guid":{"rendered":"https:\/\/help.qualiware.it\/qw-help\/?p=36596"},"modified":"2024-04-03T17:21:30","modified_gmt":"2024-04-03T15:21:30","slug":"esempio-di-drag-and-drop-su-griglia","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/esempio-di-drag-and-drop-su-griglia\/","title":{"rendered":"Esempio di drag and drop su griglia"},"content":{"rendered":"<p>Dalla versione 2023.02.05 utilizzando codice Javascript \u00e8 possibile utilizzare il drag and drop sull&#8217;<a href=\"https:\/\/help.qualiware.it\/qw-help\/fd-grid\/\">oggetto Griglia<\/a> con NuovoLayout=True per consentire all&#8217;utente di creare spostare righe da una griglia all&#8217;altra, o all&#8217;interno delle griglie figlie di una griglia principale.<\/p>\n<h3>ESEMPIO 1: SPOSTAMENTO DI RIGHE DA GRIGLIE FIGLIE DI UNA STESSA GRIGLIA<\/h3>\n<p>Per consentire lo spostamento di righe fra le griglie figlie di una stessa griglia, \u00e8 necessario fare quanto segue:<\/p>\n<p>1) Sulla griglia figlia (Grid3 nell&#8217;esempio che segue), assegnare la propriet\u00e0 <strong>ConsentiTrascinamento<\/strong> a True.<\/p>\n<p>2) Nell&#8217;<strong>EventoRenderClient <\/strong>definire la funzione <strong>externalDrop&nbsp;<\/strong>griglia madre (Grid2 nell&#8217;esempio che segue), in questo modo:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">$('#&lt;Grid2&gt;').externalDrop(\r\n  function(targetRowData,droppedRowData) {\r\n    var oldChiaveMadre=droppedRowData[0].CUSTOM1\r\n    var newChiaveMadre=targetRowData.CUSTOM1\r\n    var chiaveFiglia=droppedRowData[0].CUSTOM2\r\n    $('#&lt;DragDropRiga&gt;').ServerExecute(oldChiaveMadre,newChiaveMadre,chiaveFiglia)\r\n    \r\n    $('#&lt;Grid2&gt;').expandChildGrid()\r\n  }\r\n)<\/pre>\n<p>Come si pu\u00f2 notare, la funzione externalDrop accetta due parametri:<\/p>\n<ul>\n<li>targetRowData: contiene i dati della riga trascinata<\/li>\n<li>droppedRowData: contiene un array con i dati delle righe trascinate (che potrebbero essere pi\u00f9 di una)<\/li>\n<\/ul>\n<p>Nell&#8217;esempio, il campo CUSTOM1 contiene il campo che collega la griglia madre alle figlie, mentre CUSTOM2 \u00e8 la chiave primaria delle righe nella griglia figlia.<\/p>\n<p>3) La funzione externalDrop chiama l&#8217;<strong>EventoEsegui<\/strong> lato server di un oggetto procedura che esegue lo spostamento della riga riassegnandone il campo CUSTOM1. All&#8217;evento vengono passati tre parametri, il cui significato \u00e8 spiegato nell&#8217;esempio di codice seguente.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"visualbasic\">dim oldChiaveMadre as String = Parameter1 ' chiave della riga madre cui appartiene attualmente la riga trascinata\r\ndim newChiaveMadre as String = Parameter2 ' chiave della riga madre su cui \u00e8 stata trascinata\r\ndim chiaveFiglia as string = Parameter3 ' chiave della riga trascinata\r\n\r\nform.FindControl(\"Grid3\").filterRows(\"\")\r\nform.FindControl(\"Grid3\").MoveFirst()\r\nif form.FindControl(\"Grid3\").LocateRow(\"CUSTOM1='\"+sqlstr(oldChiaveMadre)+\"' and CUSTOM2='\"+sqlStr(chiaveFiglia)+\"'\")\r\n    form.FindControl(\"Grid3\").AssignField(\"CUSTOM1\",newChiaveMadre)\r\n    form.FindControl(\"Grid3\").SaveRow()\r\n\r\n    form.FindControl(\"Grid3\").Refresh()\r\n\r\n    form.FindControl(\"Grid3\").LocateRow(\"CUSTOM1='\"+sqlstr(newChiaveMadre)+\"' and CUSTOM2='\"+sqlStr(chiaveFiglia)+\"'\")\r\nEnd If\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalla versione 2023.02.05 utilizzando codice Javascript \u00e8 possibile utilizzare il drag and drop sull&#8217;oggetto Griglia con NuovoLayout=True per consentire all&#8217;utente di creare spostare righe da una griglia all&#8217;altra, o all&#8217;interno delle griglie figlie di una griglia principale. ESEMPIO 1: SPOSTAMENTO DI RIGHE DA GRIGLIE FIGLIE DI UNA STESSA GRIGLIA Per consentire lo spostamento di righe&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[65],"tags":[80],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/36596"}],"collection":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/comments?post=36596"}],"version-history":[{"count":1,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/36596\/revisions"}],"predecessor-version":[{"id":36598,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/36596\/revisions\/36598"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=36596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=36596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=36596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}