{"id":22867,"date":"2023-12-27T10:00:10","date_gmt":"2023-12-27T09:00:10","guid":{"rendered":"http:\/\/help.qualiware.it\/qw-help\/?p=22867"},"modified":"2025-02-20T23:06:11","modified_gmt":"2025-02-20T22:06:11","slug":"fd-vistadati","status":"publish","type":"post","link":"https:\/\/help.qualiware.it\/qw-help\/fd-vistadati\/","title":{"rendered":"OGGETTO VISTADATI"},"content":{"rendered":"<h4 align=\"left\"><a name=\"progettazione_form_proprieta\"><\/a>Descrizione<\/h4>\n<p>L&#8217;oggetto <strong>VistaDati<\/strong> consente la visualizzazione in sola lettura dei dati reperiti dal database tramite una query. Dalla release <strong><span style=\"color: #993300;\">release<\/span><span style=\"color: #993300;\"> 2023.02.00 <\/span><\/strong>dalla \u00e8 disponibile una nuova versione, attivabile assegnando la propriet\u00e0 NuovoLayout=true. Le funzionalit\u00e0 aggiunte o modificate sono evidenziate in colore <span style=\"background-color: #ffff00;\">giallo<\/span>. Nel paragrafo <a href=\"#migrazione\">Migrazione<\/a> sono riportate alcune indicazioni utili ad agevolare la migrazione delle griglie esistenti al nuovo layout.<\/p>\n<p>\u00c8 bene sottolineare che, a differenza di ci\u00f2 che succede con le <a href=\"https:\/\/help.qualiware.it\/qw-help\/fd-grid\/\">griglie<\/a>, per selezionare una colonna di una vista \u00e8 necessario chiamarla tramite l&#8217;alias che le \u00e8 stato assegnato nella relativa QueryLista. In eventuale mancanza di alias, si dovr\u00e0 naturalmente usare il nome proprio che la colonna ha all&#8217;interno del database.<\/p>\n<p><span style=\"color: #000000; background-color: #ffff00;\">Se una colonna contiene immagini codificate base64, queste vengono visualizzate automaticamente nella cella, con la possibilit\u00e0 di aprirle ingrandite cliccandovi sopra.<\/span><\/p>\n<p><span style=\"background-color: #ffff00;\"><strong>NOTA IMPORTANTE<\/strong>: per motivi di performance legati alla struttura dell&#8217;oggetto, se NuovoLayout=true eventuali aggiornamenti di altri oggetti del form effettuati all&#8217;interno dei gestori di questi eventi (ad esempio l&#8217;assegnazione di un testo ad un&#8217;etichetta, oppure l&#8217;assegnazione di un valore ad un campo), <strong>non <\/strong>comporteranno l&#8217;aggiornamento grafico del form . Per aggiornare anche visivamente questi oggetti, \u00e8 necessario inserirli in un <a style=\"background-color: #ffff00;\" href=\"https:\/\/help.qualiware.it\/qw-help\/fd-contenitore\/\">oggetto contenitore<\/a> con la propriet\u00e0 <strong>ContenitoreAggiornamento<\/strong> assegnata a <em>true<\/em>, e, nel gestore dell&#8217;evento, richiamare il metodo <strong>UpdateContainer<\/strong> dell&#8217;<a style=\"background-color: #ffff00;\" href=\"https:\/\/help.qualiware.it\/qw-help\/fd-form\/\">oggetto form<\/a> specificando come parametro il contenitore stesso.<\/span><\/p>\n<p>NOTA: le propriet\u00e0 e i metodi riportati nel seguito e preceduti dal carattere &#8220;*&#8221; non sono disponibili nella versione mobile.<\/p>\n<h4 align=\"left\"><a name=\"progettazione_form_proprieta\"><\/a><strong>Propriet\u00e0 specifiche<\/strong><\/h4>\n<p>Oltre alle propriet\u00e0 comuni (<a href=\"http:\/\/help.qualiware.it\/qw-help\/fd-proprieta-comuni\/\u200e\">vedi<\/a>) sono disponibili le seguenti propriet\u00e0:<\/p>\n<ul>\n<li><span style=\"background-color: #ffff00;\"><b><span style=\"color: #993300;\">*NuovoLayout: <\/span><\/b>se <i>True<\/i> viene utilizzato il layout aggiornato disponibile dalla versione 2023.02.00. Il default \u00e8 <em>True<\/em> per gli oggetti creati con questa versione o successiva.<\/span><\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*GrigliaFiglia <\/span><\/strong><span style=\"color: #000000;\">e<\/span><strong><span style=\"color: #993300;\"> *CampoFiltroGrigliaFiglia:<br \/>\n<\/span><\/strong><\/span>Se <em>NuovoLayout=true<\/em> \u00e8 possibile collegare due oggetti VistaDati in modo da mostrare, per ogni riga della prima, le corrispondenti righe della seconda, il cui nome deve essere specificato nella propriet\u00e0 <em>GrigliaFiglia<\/em>. I due oggetti sono collegati da una colonna in comune, che deve essere presente nelle query specificate nella propriet\u00e0 <em>QueryLista. <\/em>Tale colonna deve inserita nella propriet\u00e0 <em>CampoFiltroGrigliaFiglia<\/em>.&nbsp;<\/span><\/li>\n<li><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">QueryLista: <\/span><\/strong><\/span>contiene la query utilizzata per visualizzare i dati. Tale query pu\u00f2 contenere parametri i cui nomi, preceduti dal carattere &#8220;:&#8221;, possono corrispondere a nomi di campi collegati ad oggetti del form o a nomi di oggetti. Al momento dell&#8217;apertura del form, la query verr\u00e0 eseguita e verranno assegnati i parametri ai valori dei campi e\/o degli oggetti.<\/li>\n<li><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*ScrollVirtuale: a<\/span><\/strong><\/span>ssegnare a True per caricare i record dinamicamente in fase di scroll, a False per visualizzare i record a pagine.<\/li>\n<li><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*FattoreCacheRigheScrollVirtuale: <\/span><\/strong><\/span>determina il numero di righe caricato dal server ad ogni operazione di lettura nel caso la propriet\u00e0 ScrollVirtuale sia assegnata a True. Ad esempio, un fattore di 2 significa che ad ogni lettura vengono caricate 2 volte il numero di righe visualizzate. Lasciare a zero per utilizzare il valore di default. <span style=\"background-color: #ffff00;\">Se NuovoLayout=true viene ignorato.<\/span><\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*AltezzaRigaMax:<\/span><\/strong><\/span><\/span> determina la massima altezza della riga in pixel. Se NuovoLayout=false viene ignorato.<\/span><\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*ConsentiTrascinamento:<\/span><\/strong><\/span><\/span> assegnare a True per consentire il trascinamento della riga su un <a href=\"https:\/\/help.qualiware.it\/qw-help\/fd-grid\/\">oggetto Griglia<\/a> e implementare il Drag&amp;Drop come spiegato in <a href=\"https:\/\/help.qualiware.it\/qw-help\/esempio-di-drag-and-drop-su-griglia\/\">questo esempio<\/a>, oppure su un <a href=\"https:\/\/help.qualiware.it\/qw-help\/oggetto-calendario\/\">oggetto Calendario<\/a> come spiegato in <a href=\"https:\/\/help.qualiware.it\/qw-help\/esempio-di-drag-and-drop-su-calendario\/\">questo esempio<\/a>.&nbsp;<\/span><\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><span style=\"color: #993300;\"><strong><span style=\"color: #993300;\">*TestoACapo:<\/span><\/strong><\/span><\/span> Se true, consente l&#8217;andata a capo del testo nell&#8217;intestazione e nelle celle. Se NuovoLayout=false viene ignorato.<\/span><\/li>\n<\/ul>\n<h4 align=\"left\"><a name=\"progettazione_form_proprieta\"><\/a>Eventi specifici<\/h4>\n<ul>\n<li><strong><span style=\"color: #993300;\">EventoCambiaRiga<\/span><\/strong><span style=\"color: #993300;\">&nbsp;<span style=\"color: #000000;\">(sulla griglia)<\/span><\/span><br \/>\nEvento attivato ad ogni cambiamento della riga selezionata da parte dell&#8217;utente. Pu\u00f2 essere utilizzato per intraprendere azioni&nbsp;come ad esempio l&#8217;aggiornamento di&nbsp;altri oggetti del form sulla base dei valori della riga sui cui ci si \u00e8 posizionati.<br \/>\nN.B. questo evento viene eseguito anche quando il cambiamento di riga viene effettuato da programma. E&#8217; possibile evitarlo assegnando la propriet\u00e0 <strong><span style=\"color: #993300;\">StopExecuteChangeRow <\/span><\/strong><span style=\"color: #000000;\">a <em>True.<\/em><\/span><\/li>\n<li><strong><span style=\"color: #993300;\">EventoDatiCaricatiClient<\/span><\/strong><span style=\"color: #993300;\">&nbsp;<span style=\"color: #000000;\">(sulla griglia)<\/span><\/span><br \/>\nEvento attivato lato client solo se NuovoLayout=true al termine di ogni caricamento asincrono dei dati. Pu\u00f2 essere usato per modificare gli stili delle celle.<\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"background-color: #ffff00;\"><strong><span style=\"color: #993300;\">*EventoRenderCellaClient<\/span><\/strong><span style=\"color: #993300;\"><span style=\"color: #993300;\">&nbsp;<span style=\"color: #000000;\">(<\/span><\/span><\/span><span style=\"color: #993300;\"><span style=\"color: #000000;\">sulla griglia)<\/span><\/span><span style=\"color: #993300;\"><span style=\"color: #000000;\"><br \/>\n<\/span><\/span>Evento attivato lato client solo se NuovoLayout=true al momento di effettuare il render di ogni cella. Pu\u00f2 essere usato per modificare i valori visualizzati, inserendo, ad esempio, delle icone, come riportato nell&#8217;esempio riportato di seguito.<\/span><\/span> <span style=\"background-color: #ffff00;\">Nel codice \u00e8 possibile usare la variabile &#8220;field&#8221;, che contiene il nome della campo, la variabile &#8220;value&#8221; contiene il valore della cella, e la variabile &#8220;row&#8221;, che contiene il valore di tutti i campi della griglia. L&#8217;evento deve ritornare il valore da visualizzare, che pu\u00f2 contenere codice HTML.<\/span><br \/>\n<span style=\"background-color: #ffff00;\">Di seguito un esempio di utilizzo, che visualizza sulla colonna associata al campo CODICE una freccia verde verso l&#8217;alto se il valore \u00e8 maggiore di 10, una freccia rossa verso il basso altrimenti.<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">if (field=='CODICE')\r\n    if (value&gt;10)\r\n        return value.toString()+' &lt;span class=\"mdi mdi-arrow-up-bold\" style=\"color:green\"&gt;&lt;\/span&gt;'\r\n    else\r\n        return value.toString()+' &lt;span class=\"mdi mdi-arrow-down-bold\" style=\"color:red\"&gt;&lt;\/span&gt;'<\/pre>\n<\/li>\n<\/ul>\n<p>Per maggiori informazioni sugli eventi leggi <a href=\"http:\/\/help.qualiware.it\/qw-help\/fd-eventi\/\">qui<\/a>.<\/p>\n<h4 align=\"left\"><a name=\"progettazione_form_proprieta\"><\/a>Propriet\u00e0 utilizzabili da codice lato Server (VB.NET\/C#)<\/h4>\n<div class=\"msgBody\">\n<ul>\n<li><strong><span style=\"color: #993300;\">*StopExecuteChangeRow:<\/span>&nbsp;<\/strong>se viene assegnato a <em>True<\/em>, non viene eseguito l&#8217;<span style=\"color: #800000;\"><strong>EventoCambiaRiga<\/strong><\/span>.&nbsp;<\/li>\n<\/ul>\n<\/div>\n<h4 align=\"left\"><a name=\"progettazione_form_proprieta\"><\/a>Metodi utilizzabili da codice lato Server (VB.NET\/C#)<\/h4>\n<p>Nel codice degli eventi \u00e8 possibile utilizzare i seguenti metodi:<\/p>\n<ul>\n<li><span style=\"color: #800000;\"><strong>*ClearSelection<\/strong>:<\/span>&nbsp;rimuove l&#8217;eventuale selezione di righe<\/li>\n<li><span style=\"color: #800000;\"><strong>Count()<\/strong><\/span>: restituisce il numero totale delle righe presenti nella griglia<\/li>\n<li><span style=\"color: #800000;\"><strong>*EndOfRows(<span style=\"color: #800000;\">)<\/span><\/strong>:<\/span> restituisce <em>true<\/em> se il puntatore della riga corrente \u00e8 oltre l&#8217;ultima riga<\/li>\n<li><span style=\"color: #800000;\"><strong>FilterRows(&lt;condition&gt;)<\/strong>: <\/span>filtra le righe della griglia in base alla condizione SQL passata come argomento. Per annullare tutti i filtri presenti basta passare una stringa vuota.&nbsp;<\/li>\n<li><span style=\"color: #993300;\"><strong>*GetCellValue(&lt;Row&gt;,&lt;field&gt;)*<\/strong><\/span>: restituisce il valore contenuto nella cella corrispondente alla colonna collegata al campo &lt;field&gt; nella riga &lt;Row&gt;<\/li>\n<li><span style=\"color: #800000;\"><strong>GoToRow(&lt;bookmark&gt;)<\/strong>:<\/span>&nbsp;muove il cursore sulla riga corrispondente al segnalibro specificato&nbsp;(*)<\/li>\n<li><span style=\"color: #800000;\"><strong>LocateRow(&lt;condition&gt;)<\/strong>:<\/span> muove il cursore sulla prima riga della griglia che soddisfa la condizione SQL passata (*). <strong>NOTA:<\/strong> la ricerca parte dalla riga selezionata al momento. Pu\u00f2 quindi essere necessario chiamare prima <code>MoveFirst()<\/code> per ottenere i risultati desiderati.<\/li>\n<li><span style=\"color: #800000;\"><strong>MoveFirst()<\/strong>:<\/span> sposta il puntatore delle righe sulla prima riga, ritornando <em>false&nbsp;<\/em>se l&#8217;operazione non \u00e8 riuscita, ad esempio perch\u00e8 non vi sono righe<\/li>\n<li><span style=\"color: #800000;\"><strong>MoveLast()<\/strong>:<\/span> sposta il puntatore delle righe sull&#8217;ultima riga, ritornando <em>false&nbsp;<\/em>se l&#8217;operazione non \u00e8 riuscita, ad esempio perch\u00e8 non vi sono righe<\/li>\n<li><span style=\"color: #800000;\"><strong>MoveNext()<\/strong>:&nbsp;<\/span>sposta il puntatore delle righe sulla riga successiva a quella corrente, ritornando <em>false&nbsp;<\/em>se si era sull&#8217;ultima riga e il puntatore \u00e8 andato oltre la fine dell&#8217;insieme di righe<\/li>\n<li><span style=\"color: #800000;\"><strong>MovePrevious()<\/strong>:<\/span>&nbsp;sposta il puntatore delle righe sulla riga precedente a quella corrente, ritornando <em>false&nbsp;<\/em>se si era sulla prima riga e il puntatore \u00e8 andato prima dell&#8217;inizio dell&#8217;insieme di righe<\/li>\n<li><span style=\"color: #800000;\"><strong>ReadField(&lt;field&gt;)<\/strong>:<\/span> restituisce il valore del&nbsp;campo specificato nel parametro, per la riga corrente<\/li>\n<li><span style=\"color: #800000;\"><strong>RefreshData()<\/strong>:<\/span> esegue nuovamente la query aggiornando i valori dei parametri e aggiornando di conseguenza la visualizzazione<\/li>\n<li><span style=\"color: #800000;\"><strong>RowBookmark()<\/strong>:<\/span>&nbsp;restituisce un oggetto che rappresenta il segnalibro della riga corrente, ed \u00e8 possibile utilizzarlo per riposizionarsi successivamente sulla riga&nbsp;(*)<\/li>\n<li><span style=\"color: #993300;\"><strong>*RowCount()<\/strong><\/span>: restituisce il numero totale delle righe caricate nella griglia. A differenza del metodo Count(), nel caso di griglie paginate restituisce il solo numero delle griglie visualizzate.<\/li>\n<li><span style=\"color: #993300;\"><strong>*SetCellStyle(&lt;row&gt;,&lt;field&gt;,&lt;Style&gt;)*<\/strong><\/span>: assegna lo style specificato nel parametro &lt;style&gt;, precedentemente definito con il metodo AddStyle del form, alla cella corrispondente alla colonna collegata al campo &lt;field&gt; nella riga &lt;Row&gt;. <span style=\"background-color: #ffff00;\">Se NuovoLayout=true, nel parametro &lt;style&gt; \u00e8 possibile specificare la definizione dello style, senza la necessit\u00e0 di una definizione con AddStyle. <\/span><\/li>\n<li><span style=\"color: #993300;\"><strong>*SetHeaderStyle(&lt;Style&gt;)*<\/strong><\/span>:&nbsp; assegna lo style specificato nel parametro &lt;style&gt;, precedentemente definito con il metodo AddStyle del form, all&#8217;intestazione della griglia. <span style=\"background-color: #ffff00;\">Se NuovoLayout=true, nel parametro &lt;style&gt; \u00e8 possibile specificare la definizione dello style, senza la necessit\u00e0 di una definizione con AddStyle.<\/span><\/li>\n<li><strong><span style=\"color: #993300;\">*SetHeaderStyle(&lt;field&gt;,&lt;Style&gt;)<\/span><\/strong> *: assegna lo style specificato nel parametro &lt;style&gt;, precedentemente definito con il metodo AddStyle del form, all&#8217;intestazione della colonna corrispondente al campo &lt;field&gt;. <span style=\"background-color: #ffff00;\">Se NuovoLayout=true, nel parametro &lt;style&gt; \u00e8 possibile specificare la definizione dello style, senza la necessit\u00e0 di una definizione con AddStyle. <\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>SelectedRows()<\/strong>:<\/span>&nbsp;restituisce un array (dbArray)&nbsp;che contiene i segnalibri&nbsp;delle righe correntemente selezionate nella griglia&nbsp;<\/li>\n<li><span style=\"color: #800000;\"><strong>*SelectedRows(&lt;rows&gt;)<\/strong>:<\/span> consente di assegnare le righe selezionate, i cui segnalibri sono definiti nel parametro &lt;rows&gt;, di tipo dbArray<\/li>\n<li><span style=\"color: #993300;\"><span style=\"color: #993300;\"><strong>*SetRowStyle(&lt;Row&gt;,&lt;Style&gt;)<\/strong>:<\/span><\/span> assegna lo style specificato nel parametro &lt;style&gt;, precedentemente definito con il metodo AddStyle del form, alla riga &lt;Row&gt;. <span style=\"background-color: #ffff00;\">Se NuovoLayout=true, nel parametro &lt;style&gt; \u00e8 possibile specificare la definizione dello style, senza la necessit\u00e0 di una definizione con AddStyle. <\/span><\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><span style=\"color: #993300;\"><strong>*SetSelectedRowStyle(&lt;Style&gt;)<\/strong>:<\/span><\/span> se NuovoLayout=true, assegna lo style definito nel parametro &lt;style&gt; alla riga selezionata.<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>SetColumnWidth(&lt;field&gt;,&lt;width&gt;)<\/strong>:<\/span> definisce la larghezza della colonna corrispondente al campo &lt;field&gt;. Se &lt;width&gt;=0, la colonna viene nascosta.<\/li>\n<li><span style=\"color: #800000;\"><strong>*SetColumnHeaderText(&lt;field&gt;,&lt;text&gt;)<\/strong>: <\/span>definisce il testo dell&#8217;intestazione della colonna corrispondente al campo &lt;field&gt;.&nbsp;<\/li>\n<li><span style=\"color: #800000;\"><strong>*SetColumnHidden(&lt;field&gt;,&lt;hidden&gt;)<\/strong>: <\/span>definisce se la colonna corrispondente al campo &lt;field&gt; \u00e8 nascosta (parametro &lt;hidden&gt;=true) o meno (parametro &lt;hidden&gt;=false).<\/li>\n<li><span style=\"color: #800000;\"><strong>*setVisible(&lt;bool&gt;)<\/strong>:<\/span> se richiamato passando il valore <em>false<\/em>&nbsp;nasconde la griglia, se si passa <em>false<\/em> la&nbsp;visualizza<\/li>\n<li><span style=\"color: #800000;\"><strong>*sort(&lt;columns&gt;): <\/strong><\/span>ordina la vista in base ai nomi delle colonne indicati come argomento. I nomi delle colonne vanno separati da un comma e possono essere succeduti dalla stringa &#8220;<code>DESC<\/code>&#8221; (obbligatoriamente in uppercase) nel caso in cui l&#8217;ordinamento debba essere discendente. Esempio di chiamata:&nbsp;<code>form.FindControl(\"Grid1\").sort(\"Indice, Data DESC\")<\/code><\/li>\n<\/ul>\n<h4 align=\"left\"><a name=\"eventi_form\"><\/a>Metodi utilizzabili da codice lato Client (Javascript)<\/h4>\n<ul>\n<li><strong><span style=\"color: #993300;\">show()<\/span>:&nbsp;<\/strong>visualizza l&#8217;oggetto.<\/li>\n<li><strong><span style=\"color: #993300;\">hide()<\/span>:&nbsp;<\/strong>nasconde l&#8217;oggetto.<\/li>\n<li><strong><span style=\"color: #993300;\">readField(&lt;field&gt;)<\/span>: <\/strong>restituisce il valore del campo &lt;field&gt; della riga correntemente selezionata.<\/li>\n<li><span style=\"color: #993300;\"><strong>*collapseChildGrid()<\/strong><\/span>: chiude le righe nascondendo la griglia figlia collegata a ciascuna.<\/li>\n<li><span style=\"color: #993300;\"><strong>*e<\/strong><strong>xpandChildGrid()<\/strong><\/span>: espande le righe mostrando la griglia figlia collegata a ciascuna.<\/li>\n<li><span style=\"color: #993300;\"><strong>getCell(&lt;row&gt;,&lt;field&gt;)<\/strong><\/span>: restituisce l&#8217;oggetto jQuery della cella corrispondente alla riga alla riga &lt;row&gt; e alla colonna &lt;field&gt;. Sull&#8217;oggetto restituito \u00e8 possibile usare qualsiasi metodo jQuery, come ad esempio css,addClass e removeClass. Ad esempio, pu\u00f2 essere usato per assegnare le propriet\u00e0 dello stile:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">$('#&lt;Grid1&gt;').getCell(row,\"NUMBER1\").css(\"background-color\",\"red\")<\/code><\/li>\n<li><span style=\"color: #993300;\"><strong>getCellValue(row, field)<\/strong><span style=\"color: #000000;\">:<\/span><\/span> restituisce il valore della cella corrispondente alla riga &lt;row&gt; e alla colonna &lt;field&gt;.<\/li>\n<li><span style=\"color: #993300;\"><strong>getCurrentRowCell(field)<\/strong><\/span>: restituisce l&#8217;oggetto jQuery della cella corrispondente alla riga corrente e alla colonna &lt;field&gt;. Sull&#8217;oggetto restituito \u00e8 possibile usare qualsiasi metodo jQuery, come ad esempio css,addClass e removeClass (vedere metodo getCell).<\/li>\n<li><span style=\"background-color: #ffff00;\"><span style=\"color: #993300;\"><strong>*grid()<\/strong><\/span>: restituisce l&#8217;oggetto griglia.<\/span><\/li>\n<li><span style=\"color: #993300;\"><strong>rowCount()<\/strong><\/span>: restituisce il numero di righe visualizzate.<\/li>\n<li><span style=\"color: #993300;\"><strong>*selectedRows()<\/strong><\/span>: restituisce un array con i numeri delle righe selezionate. Pu\u00f2 essere usato come nel seguente esempio:\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">var s;\r\ns=$('#&lt;DataView1&gt;').selectedRows();\r\n\r\nvar i;\r\nfor (i=0;i&lt;s.length;i++) \r\n    $('#&lt;DataView1&gt;').getCell(s[i],\"CODICE\").css(\"background-color\",\"red\")\r\n\r\n<\/pre>\n<\/li>\n<li><span style=\"color: #800000;\"><strong>setColumnWidth(field,width)<\/strong>:<\/span> definisce la larghezza della colonna corrispondente al campo &lt;field&gt;. Se &lt;width&gt;=0, la colonna viene nascosta.<\/li>\n<li><span style=\"color: #800000;\"><strong>setColumnHeaderText(field,text)<\/strong>: <\/span>definisce il testo dell&#8217;intestazione della colonna corrispondente al campo &lt;field&gt;.&nbsp;<\/li>\n<li><span style=\"color: #800000;\"><strong>setColumnHidden(field,hidden)<\/strong>: <\/span>definisce se la colonna corrispondente al campo &lt;field&gt; \u00e8 nascosta (parametro &lt;hidden&gt;=true) o meno (parametro &lt;hidden&gt;=false).<\/li>\n<li><span style=\"color: #800000;\"><strong>*moveFirst()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">sposta il puntatore delle righe sulla prima riga tra quelle mostrate, ritornando <code>False<\/code> se l&#8217;operazione non \u00e8 riuscita, ad esempio perch\u00e8 non vi sono righe<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*moveLast()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">sposta il puntatore delle righe sull&#8217;ultima riga tra quelle mostrate, ritornando <code>False<\/code> se l&#8217;operazione non \u00e8 riuscita, ad esempio perch\u00e8 non vi sono righe<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*moveNext()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">sposta il puntatore delle righe sulla riga successiva a quella corrente, ritornando <code>False<\/code> se si era sull&#8217;ultima riga e il puntatore \u00e8 andato oltre la fine dell&#8217;insieme di righe<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*movePrevious()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">sposta il puntatore delle righe sulla riga precedente a quella corrente, ritornando <code>False<\/code> se si era sulla prima riga e il puntatore \u00e8 andato prima dell&#8217;inizio dell&#8217;insieme di righe<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*endOfRows()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">restituisce <code>True<\/code> se il puntatore della riga corrente \u00e8 oltre l&#8217;ultima riga<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*filterData(filter)<\/strong>: <\/span><span style=\"background-color: #ffff00;\">filtra le righe contenenti la stringa specificata nel parametro filter<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*refreshData(filter)<\/strong>: <\/span><span style=\"background-color: #ffff00;\">aggiorna i dati nella vista<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*rowBookmark()<\/strong>: <\/span><span style=\"background-color: #ffff00;\">&#8211; restituisce un numero che rappresenta il segnalibro della riga corrente, ed \u00e8 possibile utilizzarlo per riposizionarsi successivamente sulla riga<\/span><\/li>\n<li><span style=\"color: #800000;\"><strong>*goToRow(bookmark)<\/strong>: <\/span><span style=\"background-color: #ffff00;\">&#8211; muove il cursore sulla riga corrispondente al segnalibro specificato<\/span><\/li>\n<\/ul>\n<h4 align=\"left\"><a name=\"migrazione\"><\/a>Migrazione a nuovo layout<\/h4>\n<p>Sui form esistenti \u00e8 possibile utilizzare il nuovo layout dell&#8217;oggetto VistaDati, assegnando la propriet\u00e0 NuovoLayout a <em>true<\/em> ed effettuando le verifiche elencate nel seguito e le modifiche eventualmente conseguenti.<\/p>\n<ul>\n<li>Nei selettori utilizzati nelle funzioni jQuery &#8220;$&#8221;,&#8221;find&#8221;, e nel primo parametro della funzione &#8220;attr&#8221;, sostituire l&#8217;attributo &#8220;idx&#8221; con &#8220;data-rowindex&#8221;. Dove viene ricercato l&#8217;attributo &#8220;data-rowindex&#8221;, il valore deve essere messo fra apici.<\/li>\n<li>Nei selettori utilizzati nelle funzioni jQuery &#8220;$&#8221; e &#8220;find&#8221; sostiture la classe &#8220;.igg_ActiveRow&#8221; con &#8220;.e-row&#8221;<\/li>\n<li>Le istruzioni che aggiornano i colori di righe e celle via Javascript vanno spostate dall&#8217;evento &#8220;RenderClient&#8221; del form all&#8217;evento &#8220;DatiCaricatiClient&#8221; della griglia, che si attiva al termine del caricamento asincrono dal server.<\/li>\n<li>Se la propriet\u00e0 &#8220;ScrollVirtuale&#8221; \u00e8 <em>true<\/em>, va tenuto presente che le righe caricate in ogni momento sono solo una parte di quelle presenti nel database. In questo caso \u00e8 necessario evitare di effettuare operazioni come totali o ricerca di dati maggiori o minori via javascript, in quanto la probabilit\u00e0 di non considerare tutte le righe \u00e8 molto alta.<\/li>\n<li>I pulsanti che interagiscono con l&#8217;oggetto VistaDati, ad esempio per spostare la riga corrente, \u00e8 bene siano spostati all&#8217;interno di un oggetto <a href=\"https:\/\/help.qualiware.it\/qw-help\/fd-contenitore\/\" target=\"_blank\" rel=\"noopener\">Contenitore<\/a> con la propriet\u00e0 &#8220;ContenitoreAggiornamento&#8221; a <em>true<\/em>. In questo modo, gli aggiornamenti delle righe non comportano il refresh grafico dell&#8217;intera griglia.<\/li>\n<li>Allo stesso modo, eventuali oggetti esterni all&#8217;oggetto il cui valore viene aggiornato nell&#8217;evento &#8220;CambiaRiga&#8221; lato server, devono essere inseriti in un oggetto <a href=\"https:\/\/help.qualiware.it\/qw-help\/fd-contenitore\/\" target=\"_blank\" rel=\"noopener\">Contenitore<\/a> con la propriet\u00e0 &#8220;ContenitoreAggiornamento&#8221; a <em>true<\/em>, prevedendo, nell&#8217;evento stesso, l&#8217;aggiornamento del contenitore tramite il metodo &#8220;UpdateContainer&#8221; del form.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descrizione L&#8217;oggetto VistaDati consente la visualizzazione in sola lettura dei dati reperiti dal database tramite una query. Dalla release release 2023.02.00 dalla \u00e8 disponibile una nuova versione, attivabile assegnando la propriet\u00e0 NuovoLayout=true. Le funzionalit\u00e0 aggiunte o modificate sono evidenziate in colore giallo. Nel paragrafo Migrazione sono riportate alcune indicazioni utili ad agevolare la migrazione delle&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[6],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/22867"}],"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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/comments?post=22867"}],"version-history":[{"count":31,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/22867\/revisions"}],"predecessor-version":[{"id":37791,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/posts\/22867\/revisions\/37791"}],"wp:attachment":[{"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/media?parent=22867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/categories?post=22867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.qualiware.it\/qw-help\/wp-json\/wp\/v2\/tags?post=22867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}