Lektion gelernt! Ich habe bei einem Kunden gestern der “Infrastructure Update” (IU) und die “Cumulative Updates August 2008” (CU) installiert. Auf der Startseite des Unternehmensintranet werden Nachrichten aus allen Bereichen abgebildet. image Zur optischen Auffrischung und zur Kategorisierung wird ein Bild für das zugehörige Unternehmen (Unternehmens- oder Markenlogo) abgebildet. Der verwendete ContentType hat ein Feld “Unternehmen” vom Typ “Lookup”. uIm Content Query WebPart (CQWP) lese ich dann die ID des Lookup aus und nutze diese, um auf ein Bild als Source zu verweisen. Für solche Aktionen muss ja wie bei Heather Solomon beschrieben der WebPart mit den entsprechenden CommonViewFields “bestückt” werde.

Nach der Installation der IU und CU habe ich die Startseite geprüft und festgestellt, das die Bilder nicht mehr funktionieren. Hier mein Eintrag aus dem Webpart:

<span style="color:#606060;">   1:</span> <property name=<span style="color:#006080;">"CommonViewFields"</span> type=<span style="color:#006080;">"string"</span>>Unternehmen,Lookup;</property> 

In der ItemStyle.xsl greife ich dann für die Source über folgenden Variablendefinition zu:

<span style="color:#606060;">   1:</span> <xsl:variable name=<span style="color:#006080;">"UnternehmenId"</span>> 




<span style="color:#606060;">   2:</span>   <xsl:<span style="color:#0000ff;">value</span>-of select=<span style="color:#006080;">"@Unternehmen"</span> /> 




<span style="color:#606060;">   3:</span> </xsl:variable> 

Ergebnis vor der Installation war die ID des Lookupvalues. Ich musste etwas googlen und habe dann folgendes Versucht. Ich habe in den CommonViewField einfach den Typ weggelassen:

<span style="color:#606060;">   1:</span> <property name=<span style="color:#006080;">"CommonViewFields"</span> type=<span style="color:#006080;">"string"</span>>Unternehmen;</property>

Als Ergebnis habe ich dann ID und Inhalt des Feldes bekommen (Format bei SharePoint ist: ID;#TITELCOLUMNVALUE). Ich habe mein XSL also umgebaut und siehe da es funktioniert. Hier der Code:

<span style="color:#606060;">   1:</span> <xsl:variable name=<span style="color:#006080;">"UnternehmenId"</span>> 




<span style="color:#606060;">   2:</span>   <xsl:<span style="color:#0000ff;">value</span>-of select=<span style="color:#006080;">"substring-before(@Unternehmen, ';')"</span> /> 




<span style="color:#606060;">   3:</span> </xsl:variable>

Wenn man drüber nachdenkt ist das total logisch :-) Mit Typ in den CommonViewFields löst er mir den Inhalt gleich darstellungsfertig auf. Ohne den Typ bekomme ich das was wirklich gespeichert wurde.

Ciao Marco