Customizing The Content Query Web Part and Item Style
Customizing The Content Query Web Part and Item Style
Customizing The Content Query Web Part and Item Style
Steps
1. Inserting Content Query Web Part to the home page of parent site.
2. Customizing the Content Query Web Part to display Vendor List columns of
the sub-site.
3. Updating the Content Query Web Part properties to include Vendor List
columns.
4. Modifying the Style Library Itemstyle.xsl file to include the Vendors List fields
in HTML Table with Headers.
5. Change the CQWP Style with CustomStyle to render multiple columns with
Headers
Inserting Content Query Web Part to the home page of a parent site
1. Open SharePoint 2010 home page and click Site Actions, and then click Edit
Page. The page will displayed in edit mode.
2. In Editing Tools chose insert Web Part and click Content Rollup Category and
select Content Query and click Add button. Refer the below screen shot.
Customizing the Content Query Web Part to display Vendor List columns of
the sub-site
1. Edit the webpart properties and under query section, select Show items from
the following list and click browse button and navigate to the sub site and
select the vendor Custom list located. Refer the below screen shot.
2. Now select the following additional settings in the web part, which are as per
your requirement and click ok to save the changes to the CQWP and it will
display title column in the webpart.
2. Open the exported .webpart file in notepad and before editing the properties
refer the following instructions.
o
The values in these fields are very sensitive and a space or semi-colon
in the wrong place will break it.
_layouts/FldEdit.aspx?List=%7B04013F36%2D9F2D%2D4A5E
%2DBE29%2D2CE6EE2E50FC%7D&Field=Vendor%5Fx0020%5FDescription
Here we need to consider the Field= part which would be Vendor
%5Fx0020%5FDescription
Here %5F represents '_'. Hence the internal field name would be
Vendor_x0020_Description and the Field title would be Vendor Description
Example 2
/_layouts/FldEdit.aspx?List=%7B37920121%2D19B2%2D4C77%2D92FF
%2D8B3E07853114%7D&Field=Go%5Fx002d%5Flive
Here the internal field name would be Go_x002d_live and the Field title would be Golive
Example 3
_layouts/FldEdit.aspx?List=%7B04013F36%2D9F2D%2D4A5E
%2DBE29%2D2CE6EE2E50FC%7D&Field=IT%5Fx0020%5FHelpDesk
%5Fx0020%5F%5Fx0023%5F
Here the internal field name would be IT_x0020_HelpDesk_x0020__x0023_ and the
Field title would be IT HelpDesk #
I hope the above examples will save lot of your time!
3. Now we need to update the value of the CommonViewFields property. The
CommonViewFields property is used to display desired fields in the CQWP. Find
the CommonViewFields property in the .webpart file, which look like the below.
Collapse | Copy Code
<property name="CommonViewFields"
type="string">InternalColumnNameGoesHere, FieldType</property>
Now we need to include all our Vendor List fields as per the below.
Collapse | Copy Code
Here Field Type is the type of the respective column. Also it is very important that the
field type listed is the correct, if it is wrong, webpart will not display the data. Below are
list of data types for various fields.
o
Text
Note
Number
Currency
Integer
Boolean
DateTime
Threading
Lookup
Choice
URL
Counter
User
4. Save the .webpart file and upload it back to the home page by clicking insert
and select upload a web part option and click browse to upload the updated
file. Refer the below screen shot.
Now we will have two CQWPs on the home page and we can remove the old one.
Modifying the Style Library Itemstyle.xsl file to include the Vendors List fields
in HTML Table with Headers
Edit the webpart and navigate to Style section to view the Style Properties which will look
similar to the below screen shot. Here Item Style dropdown will show all the default styles,
which need to be customized by following the below steps.
CQWP uses ItemStyle.xsl file which is located in the site collection's Style Library. By editing
the ItemStyle.xsl file, we can add a custom item style, which can be selected from CQWP to
show all the Vendors List fields with headings.
Editing the ItemStyle XSLT file in SharePoint 2010
1. Open the site collection URL
2. Replace the /SitePages/Home.aspx with /Style
%20Library/Forms/AllItems.aspx to open the Styles Library.
3. Now it will show the following list of folders. Open the XSL Style Sheets folder
to view the Itemstyle.xsl file.
5. Open it in a notepad and Scroll down to the bottom of the file. Now Copy the
following code block and paste it above the closing xsl:stylesheet tag. Here
the first HTML Table row represents the column headings and the second
HTML table row represents the actual data.
the field name will break it. Make sure to include the correct field names, which is
different from internal name.
Refer the below examples for various fields.
Field
Name
Internal Name
Vendor
Descripti @Vendor_x005F_x0020_Description
on
Vendor_x0020_Description
Go-live
Go_x002d_live
@Go_x005F_x002d_live
Field
Name
Internal Name
IT
@IT_x005F_x0020_HelpDesk_x005F_x0020__x IT_x0020_HelpDesk_x0020_
HelpDes
005F_x0023_
_x0023_
k#
6. Save the file, go to the Style Library folder and upload the updated file to XSL
Style Sheets folder and click save button. Now right click the ItemStyle file
and publish a Major Version. This step is very important, without publishing
the major version it will not reflect the changes in the itemstyle.
2. Now on the CQWP click edit and then click Modify Shared Web Part and
expand the Presentation category. In the Styles section select
VendorCustomStyle from Item style box. Refer the below screen shot.
3. Now click OK in the Web Part pane to apply the Custom Style.
4. Now the Content Query Web Part uses VendorCustomStyle and renders
multiple columns with the headings in the web part.
5. Here is the output with Headings.
However if you use the FormatDate function, you can make this look a lot better.
<xsl:value-of select="ddwrt:FormatDate(@Date, 2057, 3)"/>
Results in this
23 March 2009
All you need to do to make sure the FormatDate function is available in your custom XSL files
is to make sure you reference the ddwrt namespace.
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime
Once this has been added to the rest of your namespace declarations at the top of your
<xsl:stylesheet> tag, you should be able to use the FormatDate function anywhere you like.
Here is sample of what a full XSL file would look like that does this.
<xsl:stylesheet
version="1.0"
exclude-result-prefixes="x d xsl msxsl cmswrt"
xmlns:x="http://www.w3.org/2001/XMLSchema"
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"
xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:template name="Default" match="*" mode="itemstyle">
<xsl:value-of select="ddwrt:FormatDate(@Date, 2057, 3)"/>
</xsl:template>
</xsl:stylesheet>
Here are the details on the different formats you can get by changing the parameters. March 23
12:00 AM was used as input for all outputs.