title: Disable automatic sorting on the first column when using jQuery DataTables
body: <p>I'm using jQuery DataTables and I would like to know if there's possible to disable automatic sorting on the first column of the table?</p>
  
  <p>My code looks like this:</p>
  
  <pre><code>        /* Default class modification */
          $.extend( $.fn.dataTableExt.oStdClasses, {
              "sWrapper": "dataTables_wrapper form-inline"
          } );
  
          /* API method to get paging information */
          $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
          {
              return {
                  "iStart":         oSettings._iDisplayStart,
                  "iEnd":           oSettings.fnDisplayEnd(),
                  "iLength":        oSettings._iDisplayLength,
                  "iTotal":         oSettings.fnRecordsTotal(),
                  "iFilteredTotal": oSettings.fnRecordsDisplay(),
                  "iPage":          Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
                  "iTotalPages":    Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
              };
          }
  
          /* Bootstrap style pagination control */
          $.extend( $.fn.dataTableExt.oPagination, {
              "bootstrap": {
                  "fnInit": function( oSettings, nPaging, fnDraw ) {
                      var oLang = oSettings.oLanguage.oPaginate;
                      var fnClickHandler = function ( e ) {
                          e.preventDefault();
                          if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
                              fnDraw( oSettings );
                          }
                      };
  
                      $(nPaging).addClass('pagination').append(
                          '&lt;ul&gt;'+
                              '&lt;li class="prev disabled"&gt;&lt;a href="#"&gt;&amp;larr; '+oLang.sPrevious+'&lt;/a&gt;&lt;/li&gt;'+
                              '&lt;li class="next disabled"&gt;&lt;a href="#"&gt;'+oLang.sNext+' &amp;rarr; &lt;/a&gt;&lt;/li&gt;'+
                          '&lt;/ul&gt;'
                      );
                      var els = $('a', nPaging);
                      $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
                      $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
                  },
  
                  "fnUpdate": function ( oSettings, fnDraw ) {
                      var iListLength = 5;
                      var oPaging = oSettings.oInstance.fnPagingInfo();
                      var an = oSettings.aanFeatures.p;
                      var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
  
                      if ( oPaging.iTotalPages &lt; iListLength) {
                          iStart = 1;
                          iEnd = oPaging.iTotalPages;
                      }
                      else if ( oPaging.iPage &lt;= iHalf ) {
                          iStart = 1;
                          iEnd = iListLength;
                      } else if ( oPaging.iPage &gt;= (oPaging.iTotalPages-iHalf) ) {
                          iStart = oPaging.iTotalPages - iListLength + 1;
                          iEnd = oPaging.iTotalPages;
                      } else {
                          iStart = oPaging.iPage - iHalf + 1;
                          iEnd = iStart + iListLength - 1;
                      }
  
                      for ( i=0, iLen=an.length ; i&lt;iLen ; i++ ) {
                          // Remove the middle elements
                          $('li:gt(0)', an[i]).filter(':not(:last)').remove();
  
                          // Add the new list items and their event handlers
                          for ( j=iStart ; j&lt;=iEnd ; j++ ) {
                              sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
                              $('&lt;li '+sClass+'&gt;&lt;a href="#"&gt;'+j+'&lt;/a&gt;&lt;/li&gt;')
                                  .insertBefore( $('li:last', an[i])[0] )
                                  .bind('click', function (e) {
                                      e.preventDefault();
                                      oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
                                      fnDraw( oSettings );
                                  } );
                          }
  
                          // Add / remove disabled classes from the static elements
                          if ( oPaging.iPage === 0 ) {
                              $('li:first', an[i]).addClass('disabled');
                          } else {
                              $('li:first', an[i]).removeClass('disabled');
                          }
  
                          if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
                              $('li:last', an[i]).addClass('disabled');
                          } else {
                              $('li:last', an[i]).removeClass('disabled');
                          }
                      }
                  }
              }
          });
  
          /* Show/hide table column */
          function dtShowHideCol( iCol ) {
              var oTable = $('#example-2').dataTable();
              var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
              oTable.fnSetColumnVis( iCol, bVis ? false : true );
          };
  
          /* Table #example */
          $(document).ready(function() {
              $('.datatable').dataTable( {
                  "sDom": "&lt;'row'&lt;'span6'l&gt;&lt;'span6'f&gt;r&gt;t&lt;'row'&lt;'span6'i&gt;&lt;'span6'p&gt;&gt;",
                  "sPaginationType": "bootstrap",                    
                  "oLanguage": {
                      "sLengthMenu": "_MENU_ records per page"
                  },
                  "aoColumnDefs": [
                      { 
                          "bSortable": false, 
                          "aTargets": [ -1 ] // &lt;-- gets last column and turns off sorting
                      } 
                  ]
              });
              $('.datatable-controls').on('click','li input',function(){
                  dtShowHideCol( $(this).val() );
              })
          });
  </code></pre>