The Ultimate Visualforce Events Tab – Almost
Check old blog posts, and you’ll see that I’ve been working on custom Events and Task tabs for a while now. A Task Visualforce tab (that mimics the Task box on the Home Page) is almost ready to come out, but the Events Enhanced List tab is (pretty much) here!This bears emphasizing: Enhanced Lists were initially not fully released for Activity/Event/Task objects, but are available now.
The code is ridiculously simple, thanks to the apex:EnhancedList Visualforce tag:
<apex:page standardController="Task" > <apex:enhancedList type="Activity" height="800" rowsPerPage="50" /> </apex:page>See? Nothing to it! Or so we thought. There are some catches (there always are):
- The original use-case required displaying all upcoming events without the header or sidebar. We still cannot do this. Quoting from the Winter ’09 Release Notes: The enhancedList component is not allowed on pages that have the attribute showHeader set to false.
- We’d like to create a custom tab for this page. We create a Visualforce Tab, pick a custom icon, and show the page… and when I click on the tab, the enhanced list is displayed, but the tab is not highlighted. Also, the custom icon I chose is not displayed. How do we highlight our tab?
After making the page, we make the tab as desribed above. Then we RETURN to the page and add a tabstyle modifier to the apex:page tag, like so:<apex:page standardController="Task" tabstyle="enhanced_activities__tab"> <apex:enhancedList type="Activity" height="800" rowsPerPage="50" /> </apex:page>
[Of course, change the tab name to whatever you choose.]Success? Not quite. There’s another catch:
- The tab is highlighted (brown in our case), but the color and icon for the enhanced list are standard green/home.
Sadly, I have no workaround for this one. Sorry.
Moving forward, consider if you want to create a particular enhanced list view instead of calling the standard enhanced Activity list as I have done here. If you would prefer to make a custom enhanced list view, then you will need to add more code, but that is beyond the scope of this post.
Enjoy!


