Remember that the XSLT select is case sensitive...

I was customising a people search result web part this week and couldn't figure out why the mobile phone field was not rendering in the results. I could see it was in the AD properties, was making it through user profile import and then helped it through to managed metadata in the search results, I even checked the raw XML for the search results which showed it there as well. So I was down to checking my XSLT, I had camel cased the name of the field in my select code, as is my habit with coding to make it easily readable, but the XSLT was looking to match the case returned by the search results which was all in lower case.

A quick crrection and refresh and they all appeared as they should. Another little puzzle solved...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

DataForm Web Parts - removing the GUID

DataForm web parts enabled us to put forms onto pages that can interact with SharePoint lists. Why would we want to do this? well one example is that we can hide the list and it's URL's , another is that the form can be designed to contain custom logic, be pre-populated with data (e.g. from the query string) or simply to only show a limited number of fields.

I use SharePoint Designer to create these as it a a great tool to manipulate the XSLT required. However, by default, Designer will use the list GUID to connect to the list. This poses a problem - when we transfer this webpart to another server (staging / live etc) the GUID will be different.

However, with a small amount of editing of the source, we can make the webpart work on other servers.

The changes required are...

a) In the DataSources string, replace
ParameterKey="ListID" DefaultValue="{YOUR_GUID}" Name="ListID"
with
ParameterKey="ListName" DefaultValue="YOUR_LIST_NAME" Name="ListName".
Note you must do this for each action e.g. UpdateParameters, DeleteParameters

b) In the ParameterBing string replace
ParameterBing Name="ListID" Location="None" DefaultValue="{YOUR_GUID}"
with
ParameterBing Name="ListName" Location="None" DefaultValue="{YOUR_LIST_NAME}"

c) In the main xslt, change
<xsl:param name="ListID">{YOUR GUID}</xsl:param>
to
<xsl:param name="ListName">YOUR_LIST_NAME</xsl:param>

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Displaying raw XML on search results

Quite often you will need to customise the search results and ensure that your custom metadata mappings are displaying correctly.

To view the raw results, I undertake the following...

a) Edit the results page (results, or people depending on what you are looking to modify

b) Add a new core results web part (again people or results)

c) Add your columns, fixed queries etc

d) Click the Edit XSLT button and replace the XSLT with the following

[code:xml]

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<xmp><xsl:copy-of select="*"/></xmp>
</xsl:template>
</xsl:stylesheet>

[/code]

Save everything and you can now see the raw results.

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

 

Dilbert of the day