Here is the extended method to build the column toggle datagrid.
(function($){
  function init(target){
    var widths = [320,480,640,800,960,1120];
    var dg = $(target);
    var opts = dg.datagrid('options');
    var onResize = dg.datagrid('getPanel').panel('options').onResize;
    dg.datagrid('getPanel').panel('options').onResize = function(width,height){
      var width = $(this).panel('panel').outerWidth();
      var priority = getPriority(width);
      var fields = dg.datagrid('getColumnFields',true).concat(dg.datagrid('getColumnFields'));
      for(var i=0; i<fields.length; i++){
        var col = dg.datagrid('getColumnOption', fields[i]);
        if (col.priority && col.priority>priority){
          dg.datagrid('hideColumn', fields[i]);
        } else {
          dg.datagrid('showColumn', fields[i]);
        }
      }
      onResize.call(this, width, height);
    }
    function getPriority(width){
      for(var i=0; i<widths.length; i++){
        if (width<widths[i]){
          return i;
        }
      }
      return widths.length;
    }
  }
  $.extend($.fn.datagrid.methods, {
    columnToggle: function(jq){
      return jq.each(function(){
        init(this);
        $(this).datagrid('resize');
      });
    }
  });
})(jQuery);
Usage example:
$('#dg').datagrid({
  width: '80%',
  fitColumns: true,
  columns: [[
    {field:'itemid',title:'Item ID',width:100},
    {field:'productid',title:'Product',width:100},
    {field:'listprice',title:'List Price',width:100,priority:1},
    {field:'unitcost',title:'Unit Price',width:100,priority:2},
    {field:'attr1',title:'Attribute',width:100,priority:3},
    {field:'status',title:'Status',width:100,priority:4}
  ]]
});
$('#dg').datagrid('columnToggle');