We want to thank all the Office Zealot readers for their support over the years!
We are giving away an Acer Ferrari laptop loaded with Windows Vista. We recently had a chance to review this laptop and now that we are done, it is your chance to get your hands on both a solid laptop and the brand new Windows Vista. We will hold the drawing for this and other items in a couple weeks, so be sure to register right away.
To register for the drawing click the banner below:

Office Zealot continues to stay ahead of the curve and bring you the latest news, resources, and information on Microsoft and Microsoft Office technologies. Microsoft Office 12, which is currently in beta release, is set to release later this year. From the excitement and hype surrounding Office 12, it could be the most important product release in years! Even before Office 12 becomes available to the general public, Office Zealot is aggregating blogs written by Microsoft employees from the various Office product teams. Hear the latest insights straight from the lion's mouth at the Office 12 Zone.
Check out the Office 12 Zone at OfficeZealot.com
Westin Kriebel wrote an interesting article about using AJAX within SharePoint to create a feedback method that does not require the user to browse away from the current page when leaving feedback or comments. Since AJAX can post to pages without actually leaving the current page, this provides a very non-intrusive way to allow SharePoint users to leave feedback. As AJAX continues to gain popularity, I think we will see even more WebParts and code that exploit its usefulness within SharePoint.
I saved Westin’s code into an html page and loaded this into a Page Viewer WebPart to get the screenshots below. However, this could also be coded into a custom WebPart to streamline the deployment of this functionality. You could easily add this to the bottom of your SharePoint pages to create a quick way to receive feedback from SharePoint users. This code could also be extended to include other feedback objects, such as, radio buttons or a slider that could allow users to rate a page's popularity or effectiveness.
The “Provide Feedback” button can be tucked away anywhere on the webpage. The Sample Fields are examples of what you may have on your SharePoint page. If you enter text in these fields and decide to leave feedback, you will not lose your entries, as AJAX does not require a redirect to another page.
A click on the “Provide Feedback” button brings up a small window where users can leave feedback. Very simple, yet very useful.

We, at Office Zealot, are pleased to announce the release of the new Microsoft Office Business Intelligence Zone to bring you the latest news, resources, and information on business intelligence within Microsoft Office. BI continues to be a very hot topic and technology, and we are excited to share our experience and knowledge.
Check it out!
http://www.officezealot.com/officebi/
A Summary of SharePoint WebPart ToolPart Types
WebPartToolPart
The WebPartToolPart is the default ToolPart for a SharePoint WebPart and is included in all WebParts. It contains all the default properties of a WebPart, which can be seen by the end user through the WebPart property interface. These properties include all the basic information for a WebPart’s appearance and layout within a SharePoint page.
Default WebPart properties:
- Appearance
- Title
- Width
- Frame State
- Frame Style
- Layout
- Visible on Page
- Direction
- Zone
- Part Order
- Advanced
- Allow Minimize
- Allow Close
- Allow Zone Change
- Allow Export Sensitive Properties
- Detail Link
- Description
- Help Link
- Icon File (Large)
- Icon File (Small)
- Missing Assembly Error
- Target Audiences
CustomPropertyToolPart
The CustomPropertyToolPart is an additional ToolPart that is added when custom properties are added to the WebPart programmatically. A custom property is any WebPart property that is not a member of the base WebPart properties listed in the section above and is visible to the user through the WebPart properties interface. Similar to the WebPartToolPart, properties can be grouped into sections. All sections are part of a single CustomPropertyToolPart.
Examples of custom properties
- Database connection information
- Connectivity between WebParts
- URLs
- Information that can be used within the code of your WebPart
For more information on building WebParts with custom properties, see Creating a Web Part with Custom Properties.
A Custom ToolPart (built by the developer)
The third type of ToolPart is a custom ToolPart built by the developer. Properties, layout, and functionality used by this ToolPart are built programmatically. The Html and controls that are visible to the end user are created manually, allowing for much greater interaction and functionality than the other 2 static ToolParts.
For more information on creating custom ToolParts, see Creating a Web Part with a Custom Tool Part.
Adding ToolParts to the WebPart
All types of ToolParts become associated with a WebPart by adding them to the WebPart’s collection of ToolParts through the GetToolParts method. This method overrides the base method of the WebPart class and is necessary only when adding custom ToolParts. If only default and custom properties are used in a WebPart, they will be added automatically and the GetToolParts method is unnecessary.
GetToolParts() Method of WebPart
Public Overrides Function GetToolParts() As Microsoft.SharePoint.WebPartPages.ToolPart()
' Add the custom toolpart to the webpart's toolparts
Dim toolParts(3) As ToolPart
Dim objWebToolPart As WebPartToolPart = New WebPartToolPart
Dim objCustomProperty As CustomPropertyToolPart = New CustomPropertyToolPart
toolParts(0) = objWebToolPart
toolParts(1) = objCustomProperty
toolParts(2) = New YourCustomToolpart( )
Return toolParts
End Function
This GetToolParts method adds the 3 different types of ToolParts to the WebPart’s ToolParts collection. You can add multiple ToolParts to a WebPart in a similar manner. ToolParts can remain hidden from view by not adding them to this collection.
Add the default WebPartToolPart to the collection:
Dim objWebToolPart As WebPartToolPart = New WebPartToolPart
toolParts(0) = objWebToolPart
Add a CustomPropertyToolPart to the collection:
Dim objCustomProperty As CustomPropertyToolPart = New CustomPropertyToolPart
toolParts(1) = objCustomProperty
Add a custom built ToolPart (YourCutomToolPart is the class name) to the collection:
toolParts(2) = New YourCustomToolPart( )