 
         if (dgAccInfo.isColumnHeader)
         {
-            // TODO: Allow doDefaultAction to sort columns
+            if (dgAccInfo.dataGrid.sortableColumns
+            && dgAccInfo.dataGrid.columns.getItemAt(dgAccInfo.columnIndex).sortable)
+            {
+                // TODO: This only allows sorting by one column at a time.
+                dgAccInfo.dataGrid.sortByColumns(
+                    Vector.<int>([dgAccInfo.columnIndex])
+                );
+            }
             return;
         }
 

        dgAccInfo.setup(master, childID);
        if (dgAccInfo.isInvalid || !dgAccInfo.dataGrid.columns)
            return null;
        if (dgAccInfo.isColumnHeader)
            return dgAccInfo.dataGrid.columns.getItemAt(dgAccInfo.columnIndex).headerText;
        if (!dgAccInfo.dataGrid.dataProvider)
            return null;


        var rowString:String = "";
        if ((dgAccInfo.isCellMode && dgAccInfo.columnIndex == 0) || !dgAccInfo.isCellMode)
        {
            resourceManager = ResourceManager.getInstance();
            rowString = resourceManager.getString("components", "rowMofN");
            rowString = rowString.replace("%1", dgAccInfo.reachableRowIndex + 1).replace("%2", dgAccInfo.reachableRowCount);
        }
