{"id":2649,"date":"2019-06-07T11:50:45","date_gmt":"2019-06-07T10:50:45","guid":{"rendered":"http:\/\/www.donatantonio.net\/blog\/?p=2649"},"modified":"2019-06-07T11:52:00","modified_gmt":"2019-06-07T10:52:00","slug":"disabilitare-lordinamento-per-singole-colonne-di-una-jquery-datatables","status":"publish","type":"post","link":"https:\/\/www.donatantonio.net\/blog\/tipsetricks\/disabilitare-lordinamento-per-singole-colonne-di-una-jquery-datatables\/","title":{"rendered":"Disabilitare l&#8217;ordinamento per singole colonne di una jQuery DataTables"},"content":{"rendered":"<p>Abbiamo gi\u00e0 visto come <a href=\"http:\/\/www.donatantonio.net\/blog\/tipsetricks\/una-tabella-con-il-plug-in-jquery-datatables\/\">creare velocemente una tabella con jQuery DataTables<\/a> e come <a href=\"http:\/\/www.donatantonio.net\/blog\/tipsetricks\/disabilitare-lordinamento-per-tutte-le-colonne-di-una-jquery-datatables\/\">disabilitare completamente l&#8217;ordinamento di colonne<\/a>.<br \/>\nPu\u00f2 risultare necessario a volte disabilitare l&#8217;ordinamento solo per una determinata colonna o gruppi di colonne. Ad esempio se nella nostra tabella \u00e8 presente una colonna contenente un controllo grafico (un checkbox, un radio, una select, etc&#8230;) pu\u00f2 risultare inutile permettere l&#8217;ordinamento di questa colonna; altro caso \u00e8 quello in cui il dato presente in colonna non \u00e8 significativo e quindi non richiede un ordinamento (un&#8217;immagine ad esempio&#8230;).<\/p>\n<p>Se volessimoo quindi <strong>disabilitare l&#8217;ordinamento di una colonna<\/strong> di una DataTable?<\/p>\n<p><a href=\"http:\/\/www.donatantonio.net\/blog\/wp-content\/uploads\/2019\/06\/datatable_no_ordering_column.png\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2651\" src=\"http:\/\/www.donatantonio.net\/blog\/wp-content\/uploads\/2019\/06\/datatable_no_ordering_column.png\" alt=\"Datatable no ordering column\" width=\"899\" height=\"450\" srcset=\"https:\/\/www.donatantonio.net\/blog\/wp-content\/uploads\/2019\/06\/datatable_no_ordering_column.png 899w, https:\/\/www.donatantonio.net\/blog\/wp-content\/uploads\/2019\/06\/datatable_no_ordering_column-300x150.png 300w, https:\/\/www.donatantonio.net\/blog\/wp-content\/uploads\/2019\/06\/datatable_no_ordering_column-768x384.png 768w\" sizes=\"(max-width: 899px) 100vw, 899px\" \/><\/a>L&#8217;opzione da utilizzare in fase di inizializzazione di DataTable \u00e8 denominata <strong>columnDefs.<br \/>\n<\/strong>L&#8217;opzione columnDefs accetta come parametro un array di opzioni varie, tutte predisposte a <strong>definire<\/strong> le funzioni delle singole <strong>colonne<\/strong>. In particolare, nel nostro caso, \u00e8 necessario definire la &#8220;sottopzione&#8221; <strong>orderable<\/strong>.<\/p>\n<p>Se ad esempio volessimo quindi disabilitare l\u2019ordinamento della seconda colonna dovremmo scrivere:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script type=&quot;text\/javascript&quot;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 $('#idTabella').DataTable({\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;columnDefs&quot;: [\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 1 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;language&quot;: {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;url&quot;: &quot;\/\/cdn.datatables.net\/plug-ins\/1.10.19\/i18n\/Italian.json&quot;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>L&#8217;opzione columnDefs pu\u00f2 contenere <strong>pi\u00f9 definizioni<\/strong>, ciascuna di queste <em>va riferita ad una determinata colonna<\/em> identificata dalla sua posizione in tabella (la prima colonna ha <strong>targets<\/strong> 0, la seconda 1, la terza 2, etc&#8230;).<\/p>\n<p>Possiamo anche decidere di disabilitare l&#8217;ordinamento <strong>di pi\u00f9 colonne<\/strong> semplicemente aggiungendo un&#8217;altra voce a columnDefs:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;script type=&quot;text\/javascript&quot;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 $('#idTabella').DataTable({\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;columnDefs&quot;: [\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 1 },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 2 },\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ],\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;language&quot;: {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;url&quot;: &quot;\/\/cdn.datatables.net\/plug-ins\/1.10.19\/i18n\/Italian.json&quot;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n&lt;\/script&gt;\r\n<\/pre>\n<p>Nulla vieta, inoltre, di combinare colonne disabilitate con <a href=\"http:\/\/www.donatantonio.net\/blog\/tipsetricks\/ordinamento-iniziale-in-una-jquery-datatables\/\">un ordinamento personalizzato<\/a> della tabella.<\/p>\n<p>Ecco la nostra tabella jQuery DataTables <strong>con due colonne senza ordinamento<\/strong>:<\/p>\n<p><iframe src=\"http:\/\/www.donatantonio.net\/Tips_Tricks\/datatables_no_ording_column\/\" width=\"100%\" height=\"350px\" frameborder=\"0\"><\/iframe><\/p>\n<p><strong>Scarica il codice completo <a href=\"http:\/\/www.donatantonio.net\/Tips_Tricks\/DataTables - No ording column.zip\">cliccando qui<\/a>.<br \/>\nScopri altri <a href=\"http:\/\/www.donatantonio.net\/blog\/category\/tipsetricks\/\">Tips &amp; Tricks<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abbiamo gi\u00e0 visto come creare velocemente una tabella con jQuery DataTables e come disabilitare completamente l&#8217;ordinamento di colonne.<br \/>\nPu\u00f2 risultare necessario a volte disabilitare l&#8217;ordinamento solo per una determinata colonna o gruppi di colonne. Ad esempio se nella nostra tabella \u00e8 presente una colonna contenente un controllo grafico (un checkbox, un radio, una select, etc&#8230;) pu\u00f2 risultare inutile permettere l&#8217;ordinamento di questa colonna; altro caso \u00e8 quello in cui il dato presente in colonna non \u00e8 significativo e quindi non richiede un ordinamento (un&#8217;immagine ad esempio&#8230;).<\/p>\n<p>Se volessimoo quindi disabilitare l&#8217;ordinamento di una colonna di una DataTable?<\/p>\n<p>L&#8217;opzione da utilizzare in fase di inizializzazione di DataTable \u00e8 denominata columnDefs.<br \/>\nL&#8217;opzione columnDefs accetta come parametro un array di opzioni varie, tutte predisposte a definire le funzioni delle singole colonne. In particolare, nel nostro caso, \u00e8 necessario definire la &#8220;sottopzione&#8221; orderable.<\/p>\n<p>Se ad esempio volessimo quindi disabilitare l\u2019ordinamento della seconda colonna dovremmo scrivere:<\/p>\n<p>&lt;script type=&quot;text\/javascript&quot;&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 $(&#8216;#idTabella&#8217;).DataTable({<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;columnDefs&quot;: [<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 1 }<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ],<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;language&quot;: {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;url&quot;: &quot;\/\/cdn.datatables.net\/plug-ins\/1.10.19\/i18n\/Italian.json&quot;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 });<br \/>\n&lt;\/script&gt;<\/p>\n<p>L&#8217;opzione columnDefs pu\u00f2 contenere pi\u00f9 definizioni, ciascuna di queste <em>va riferita ad una determinata colonna<\/em> identificata dalla sua posizione in tabella (la prima colonna ha targets 0, la seconda 1, la terza 2, etc&#8230;).<\/p>\n<p>Possiamo anche decidere di disabilitare l&#8217;ordinamento di pi\u00f9 colonne semplicemente aggiungendo un&#8217;altra voce a columnDefs:<\/p>\n<p>&lt;script type=&quot;text\/javascript&quot;&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 $(&#8216;#idTabella&#8217;).DataTable({<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;columnDefs&quot;: [<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 1 },<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &quot;orderable&quot;: false, &quot;targets&quot;: 2 },<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ],<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;language&quot;: {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &quot;url&quot;: &quot;\/\/cdn.datatables.net\/plug-ins\/1.10.19\/i18n\/Italian.json&quot;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 });<br \/>\n&lt;\/script&gt;<\/p>\n<p>Nulla vieta, inoltre, di combinare colonne disabilitate con un ordinamento personalizzato della tabella.<\/p>\n<p>Ecco la nostra tabella jQuery DataTables con due colonne senza ordinamento:<\/p>\n<\/p>\n<p>Scarica il codice completo cliccando qui.<br \/>\nScopri altri Tips &amp; Tricks.<\/p>\n","protected":false},"author":1,"featured_media":2651,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[505],"tags":[528,525,529,527,526],"_links":{"self":[{"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/posts\/2649"}],"collection":[{"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/comments?post=2649"}],"version-history":[{"count":4,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/posts\/2649\/revisions"}],"predecessor-version":[{"id":2656,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/posts\/2649\/revisions\/2656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/media\/2651"}],"wp:attachment":[{"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/media?parent=2649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/categories?post=2649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donatantonio.net\/blog\/wp-json\/wp\/v2\/tags?post=2649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}