---
schema_version: "1"
id: 75a7ae33f13c9fc3c6a1b21aa5940927e0fa54ac21f68d4df31eed066ec781b8
title: Create Advanced Visualforce Dashboard Components
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/platform/salesforce-pages-developers-guide/guides/pages/quick-start/advanced/pages-quick-start-advanced-dashboard-components.md
canonical_url: https://developer.salesforce.com/docs/platform/salesforce-pages-developers-guide/guide/pages-quick-start-advanced-dashboard-components.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 5ec53d30994e411787895cf59e5f5be36b97926d1be9524b4c83b2eee871c40b
products:
  - Visualforce Developer Guide
  - Platform Developer Content
---

# Create Advanced Visualforce Dashboard Components

Create a Visualforce page with a custom list controller, then use it as a dashboard component.

| Required Editions                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------------------------------------- |
| Available in: Salesforce Classic ([not available in all orgs](https://help.salesforce.com/s/articleView?id=sf.overview_edition_lex_only.htm)) |
| Available in: all editions                                                                                                                    |

**note:** Visualforce pages as dashboard components are only available in Salesforce Classic. In Lightning Experience, you can create a custom tab and use that as a dashboard for your custom lightning components.

To be included in a dashboard, a Visualforce page must use a custom controller, use a standard or custom list controller, or not have a controller. You can’t add a Visualforce page with a standard controller to a dashboard. Only Visualforce pages that meet these requirements appear as options in the Data Sources tab.

Visualforce dashboard components aren’t supported when third-party cookies are disabled. See [Visualforce Limitations in Salesforce Classic When Third-Party Cookies are Blocked](https://help.salesforce.com/s/articleView?id=003786014&type=1).

This Visualforce dashboard component displays all of the open cases associated with a contact named “Barbara Levy.”

1.  Create a custom list controller called `retrieveCase`.

    <!-- otherprops: apex_code set_clipboard -->

    ```controller
    public class retrieveCase {

        public String getContactName() {
            return 'Barbara Levy';
        }

        public List<Case> getCases() {
            return [SELECT status, subject FROM Case
                    WHERE Contact.name = 'Barbara Levy' AND status != 'Closed' limit 5];
        }
    }
    ```

2.  Create a Visualforce page that uses the `retrieveCase` custom controller.

    <!-- otherprops: apex_page set_clipboard -->

    ```markup
    <apex:page controller="retrieveCase" tabStyle="Case">
        <apex:pageBlock>
            {!contactName}'s Cases
            <apex:pageBlockTable value="{!cases}" var="c">
                <apex:column value="{!c.status}"/>
                <apex:column value="{!c.subject}"/>
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:page>
    ```

3.  To add the Visualforce page to a dashboard, see [Add a Dashboard Component in Salesforce Classic](https://help.salesforce.com/s/articleView?id=analytics.dashboards_add_component.htm&type=5).

![A Visualforce dashboard titled Barbara Levy's Cases](https://developer.salesforce.com/media/salesforce-pages-developers-guide/pages_quick_start_advanced_visualforce_dashboard.png)

**See Also**

- [Create Visualforce Dashboard Components](https://developer.salesforce.com/docs/platform/salesforce-pages-developers-guide/pages-quick-start-basic-dashboard-components.md)
- [Standard List Controllers](https://developer.salesforce.com/docs/platform/controller-std/pages-controller-sosc-about.md)
- [Building a Custom List Controller](https://developer.salesforce.com/docs/platform/controller/pages-custom-list-controller.md)
