Travis Lingenfelder
Travis is a Senior Lead Consultant for Catapult Systems and blogs about Microsoft technologies including SharePoint, but is passionate about all things relating to technology. Travis is a MCTS for SharePoint Server 2007 and 2010, application development and configuration.

Customize HTML Editor Predefined Table Formats   

Tags: Content Management, SharePoint
Technorati Tags: ,

The publishing features of MOSS allow you to create tables on publishing pages.  Out-of-the box, MOSS comes with a set of predefined table formats that control the style of the header row, first column, alternating line-styles, etc.  Most likely though, none of these styles are what you are looking for.  Customizing these styles is quite easy once you create some CSS classes that conform to the specific naming convention.

Inserting a Table with a Predefined Table Format

To insert a new table using a predefined table format click the new table button on the Rich Text Editor toolbar.

rteToolbar

This will open the Insert Table webpage dialog.  The highlighted section below is used to format your table according to the predefined table format that you choose.

ptfdialog

Notice that there are several options in this section that determine how the table will be formatted.  The first option is Use Predefined Table Format.  When you select this check box you will have to choose from one of the table formats in the drop down list.  I will discuss how to have new predefined table formats appear in this list later in this post.

After you select the type of table format that you want to use, there are four additional options that you can specify in the Apply special formats to: section.  These options control the application of additional CSS classes to <tr> and <td> elements that are used to apply additional formatting to the heading row, first column, last row, and last column when these items are checked.

Developing a Predefined Table Format

The the Rich Text Editor adds the table to the publishing region, it will append the appropriate CSS class references to the <table>, <tr>, and <td> elements as specified by the options chosen in the webpage dialog in order to render the table as desired.  This will require you to create several CSS classes that will be used to format the table.

 

First Column Style

Odd Column Style

Even Column Style

Last Column Style

HeaderRow

HeaderFirstCol

HeaderOddCol

HeaderEvenCol

HeaderLastCol

OddRow

FirstCol

OddCol

EvenCol

LastCol

EvenRow

FirstCol

OddCol

EvenCol

LastCol

FooterRow

FooterFirstCol

FooterOddCol

FooterEvenCol

FooterLastCol

 

The out-of-the-box table styles reside in a file in the LAYOUTS folder, called .../12/TEMPLATE/LAYOUT/1033/STYLES/HtmlEditorTableFormats.css. Since, this item lives directly on the file system it is not available to content authors or style designers from SharePoint Designer.  However, once you create a CSS file that contains CSS classes with using the appropriate class naming convention and reference it on your page, the rich text editor will no longer reference the predefined table formats in the HtmlEditorTableFormats.css and will now display your custom table formats, enabling easy editing from users with SharePoint Designer.

CSS Class Naming Convention

All predefined table formats must adhere to a strict naming convention so that the styles will be applied appropriately.  All of the CSS classes *MUST* have a prefix of ms-rteTable in the class name.

There are 17 styles that you can define to control the formatting for a predefined table (this includes one for the table itself).  The following CSS class definitions are needed for a complete predefined table format, for your own custom table format you should replace name in the definitions below with the name of your table format.

.ms-rteTable-name

.ms-rteTable-name tr.ms-rteTableHeaderRow-name

.ms-rteTable-name td.ms-rteTableHeaderFirstCol-name

.ms-rteTable-name td.ms-rteTableHeaderOddCol-name

.ms-rteTable-name td.ms-rteTableHeaderEvenCol-name

.ms-rteTable-name td.ms-rteTableHeaderLastCol-name

.ms-rteTable-name tr.ms-rteTableOddRow-name

.ms-rteTable-name td.ms-rteTableFirstCol-name

.ms-rteTable-name td.ms-rteTableOddCol-name

.ms-rteTable-name td.ms-rteTableEvenCol-name

.ms-rteTable-name td.ms-rteTableLastCol-name

.ms-rteTable-name tr.ms-rteTableEvenRow-name

.ms-rteTable-name tr.ms-rteTableFooterRow-name

.ms-rteTable-name td.ms-rteTableFooterFirstCol-name

.ms-rteTable-name td.ms-rteTableFooterOddCol-name

.ms-rteTable-name td.ms-rteTableFooterEvenCol-name

.ms-rteTable-name td.ms-rteTableFooterLastCol-name

For example: To create a predefined table format called CustomerData, the table CSS definition would be named .ms-rteTable-CustomerData and the CSS class name definition for the header first column would be .ms-rteTable-CustomerData td.ms-rteTableHeaderFirstCol-CustomerData.

 
Posted by  Travis Lingenfelder  on  11/5/2009
0  Comments  |  Trackback Url  | 1  Links to this post | Bookmark this post with:        
 

Links to this post


Trackback from  David Broussard  on  8/20/2009  1:34 PM
A Guide to SharePoint Performance Testing (Part I) – What is “Acceptable” Anyway? 

[...] Recently I was involved in a couple of engagements to perfor ... [...]






Pingback from  [RESOLVED]Load and performance testing using .net 2008 | Asp Forum  on  9/10/2014  12:53 PM

Comments

Name *:
URL:
Email:
Comment:


CAPTCHA Image Validation