SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Webpart anpassen und auf der Stadtseite der SiteCollection anzeigen

Geprüfte Antwort Dieser Beitrag hat 7 Antworten

Ohne Rang
30 Beiträge
DavidSch. erstellt 2 Juli 2010 15:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,
ich habe folgendes Problem:

Ich habe eine Teamsite (SharepointWebsite) wo drin sich ein Besprechungsarbeitsbereich befindet . Im Besprechungsarbeitsbereich sind mehrere Listen wie z.B. die Liste Aufgaben.
Ich möchte nun aus der Liste Aufgaben die Werte "Titel" und "Fälligkeitsdatum" auf der Startseite der Teamsite via ein Webpart darstellen. Als Grundlage habe ich folgende Hilfe benutzt: http://blogs.itacs.de/KD/Lists/Beitraege/Post.aspx?List=70b96ccf%2Dec77%2D48b0%2D82f6%2D96b2676560f8&ID=6
Nachdem ich dieses einmal komplett durchgearbeitet und ausgetestet habe, wollte ich nun das Beispiel für mich anpassen. Folgende Sachen habe ich bislang erstellt:

Webpart (habe ich wie im Beispiel exportiert und dann wie folgt angepasst):

....
        <property name="WebsOverride" type="string" />
        <property name="CommonViewFields" type="string">Titel,Text;Fälligkeitsdatum;</property>
        <property name="DisplayName" type="string" />
        <property name="ChromeType" type="chrometype">TitleOnly</property>
....

XLS (wie im Beispiel erstellt):

 <xsl:template name="Alle_Aufgaben" match="Row[@Style='Aufgaben']" mode="itemstyle">
  <div id="linkitem" class="ItemActually">
   <table class="PageTitle" cellpadding="0" cellspacing="0">
    <tr>
     <td>
      <div class="Date">
       <xsl:value-of select="ddwrt:FormatDate(string(@Fälligkeitsdatum), 1031, 1)" />
      </div>
       <span class="Pagetitle" style="display:inline">
        <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
         <a href="/{@FileRef}">
          test<xsl:value-of select="@Titel" />
         </a>   
       </span> 
     </td>
    </tr>
   </table>
   <div style="clear:both;"></div>
  </div>
 </xsl:template>

Das Problem warum mir der Inhalt nicht angezeigt wird, liegt wahrscheinlich daran, dass ich nicht den richtigen Wert im Template unter match angegeben habe. Wenn ich unter Match "Row[@Style='Alle_Aufgaben']" eingebe, zeigt das Webpart "test" an und kann den Titel und das Fälligkeitsdatum nicht auflösen. Wenn ich das wie oben angegeben lasse, wird Standardmäßig der Titel angezeigt (aber leider nicht das Fälligkeitsdatum.

Vllt könnt ihr mir ja helfen.

Danke schonmal.
Gruß, David

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Juli 2010 16:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da macht mindestens das Feld "Fälligkeitsdatum" Probleme (wegen dem Umlaut). Im XSL müssen immer die internen, XML-konformen Namen verwendet werden. Die findest Du, wenn Du in den Listeneinstellungen auf ein Feld klickst in der URL ganz hinten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
30 Beiträge
DavidSch. Als Antwort am 5 Juli 2010 09:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Habe die beiden Felder in "DueDate" und in "Title" umbenannt.

Webpart:
...
        <property name="FeedDescription" type="string" />
        <property name="WebsOverride" type="string" />
        <property name="CommonViewFields" type="string">Title,Text; DueDate,Date;</property>
        <property name="DisplayName" type="string" />
...

XSL:
 <xsl:template name="Alle_Aufgaben" match="Row[@Style='Aufgaben']" mode="itemstyle">
  <div id="linkitem" class="ItemActually">
   <table class="PageTitle" cellpadding="0" cellspacing="0">
    <tr>
     <td>
      <div class="Date">
       <xsl:value-of select="ddwrt:FormatDate(string(@DueDate),1031 , 1)"/>
       <span class="PageTitle" style="display:inline">
        <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
         <a href="/{@FileRef}">
          <xsl:value-of select="@Title" />
         </a>       
       </span>
      </div>
     </td>
    </tr>
   </table>
   <div style="clear:both;"></div>
  </div>
 </xsl:template>

Ich bekomme leider immernoch nur das Titelfeld ausgegeben. Er kann also nichts mit dem Template anfangen. In der ersten Zeile des Templates befindet sich noch das Tag "match"(rot markiert). Ich behaupte mal, dass dieses noch falsch ist und dass der sich darum nicht die Daten aus der Aufgabenliste ziehen kann. Die Liste mit den Daten befindet sich unter http://sharepoint/Teamsites/Gruppe/Lists/Aufgaben/Formulare.aspx .
Muss ich da noch was ändern oder habe ich noch etwas übersehen, was ich beachten muss.

Ohne Rang
30 Beiträge
DavidSch. Als Antwort am 5 Juli 2010 14:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich bins nochmal:

Die Daten werden jetzt schon richtig ausgegeben. Die Info war genau Richtig --> XSL-Standardnamen verwenden!
Danke schonmal!
Folgenden Code habe ich verwendet:


Webpart:
...
        <property name="WebsOverride" type="string" />
        <property name="CommonViewFields" type="string">Title,Text;DueDate,Date;</property>
        <property name="DisplayName" type="string" />
        <property name="ChromeType" type="chrometype">TitleOnly</property>
...

XSL-Template:
 <xsl:template name="Alle_Aufgaben" match="Row[@Style='Alle_Aufgaben']" mode="itemstyle">
  <div id="linkitem" class="ItemActually">
   <table class="PageTitle" cellpadding="0" cellspacing="0">
    <tr>
     <td>
      <div class="Date">
       <span class="PageTitle" style="display:inline">
        <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/> 
         <xsl:value-of select="@Title" />
       </span>
      </div>
      <div>
      <a href="/{@FileRef}">
       <xsl:value-of select="ddwrt:FormatDate(string(@DueDate),1031 , 1)"/>
      </a>  
      </div>
     </td>
    </tr>
   </table>
   <div style="clear:both;"></div>
  </div>
 </xsl:template> 


Nun fehlt mir nurnoch der Link zu den einzelnen Aufgaben. Momentan erhalte ich via <a href="/{@FileRef}"> ... nur den Link:
http://sharepoint/Teamsites/Gruppe/Lists/Aufgaben/39_.000
Ich will aber den Link im folgenden Format haben:
http://sharepoint/Teamsites/Gruppe/Lists/Aufgaben/DispForm.aspx?ID=39

Dann wäre mein Werk vollbracht. Habe bislang noch keine passenden Lösung gefunden. Kann mir da noch wer helfen?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2010 08:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Benutze als Link
href="{concat(@FileRef, '/../DispForm.aspx?ID=', @ID)}"

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
30 Beiträge
DavidSch. Als Antwort am 6 Juli 2010 08:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hey Andi,

das sieht schon ziemlich gut aus. Der Link ist leider nur noch nicht komplett richtig. Habe gerade schon versucht mit deiner Lösung rumzuspielen, bin aber noch nicht zum richtigen Ergebnis gekommen. Wenn ich dein Code benutze, bekomme ich folgenden Link raus:
http://sharepoint/Teamsites/Teamsites/Gruppe/Lists/Aufgaben/DispForm.aspx?ID=39
Es ist sozusagen ein Teamsites zu viel im Link.
http://sharepoint/Teamsites/Gruppe/Lists/Aufgaben/DispForm.aspx?ID=39 <-- Der wäre richtig :-)

Danke schonmal für deine Bemühungen.

Gruß, David

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2010 09:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe das schon öfter benutzt und damit noch kein Problem. Könnte es sein, daß Du da zu viel rumgespielt hast? ;-)

Anyway, da Du es vermutlich nicht transportabel brauchst, kannst Du auch einen absoluten Link verwenden:
href="http://sharepoint/teamsites/Gruppe/Lists/Aufgaben/DispForm.aspx?ID={@ID}"

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
30 Beiträge
DavidSch. Als Antwort am 6 Juli 2010 09:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Damit hab ich es gerade auch hinbekommen :-)

Ich schreibe hier nochmal die ganze Lösung von dir hin, damit Andere diese auch sauber verwenden können.

1.) Mit Hilfe dieser Grunlage http://blogs.itacs.de/KD/Lists/Beitraege/Post.aspx?List=70b96ccf%2Dec77%2D48b0%2D82f6%2D96b2676560f8&ID=6 wurde angefangen.

2.) Das Exportierte Webpart wurde wie folgt angepasst (wichtig ist, dass die XML-internen Feldnamen verwendet werden):

Webpart:
...
        <property name="FeedDescription" type="string" />
        <property name="WebsOverride" type="string" />
        <property name="CommonViewFields" type="string">Title,Text; DueDate,Date;</property>
        <property name="DisplayName" type="string" />
...

XSL-Template:
 <xsl:template name="Alle_Aufgaben" match="Row[@Style='Alle_Aufgaben']" mode="itemstyle">
  <div id="linkitem" class="ItemActually" style="padding-top:6px">
   <table class="PageTitle" cellpadding="0" cellspacing="0">
    <tr>
     <td>
      <span style="width: 580px">
       <xsl:value-of select="@Title" />
      </span>
     </td>
     <td>
      <a href="http://sharepoint/Teamsites/Gruppe/Lists/Aufgaben/DispForm.aspx?ID={@ID}">
       <xsl:value-of select="ddwrt:FormatDate(string(@DueDate),1031 , 1)"/>
      </a>  
     </td>
    </tr>
   </table>
   <div style="clear:both;"></div>
  </div>
 </xsl:template> 

3.) Alles einchecken / hochladen und wie bei Punkt 1 bis zum Ende vorgehen.


Vielen Dank nochmal an Andi Fandrich bei der super Hilfe! :-)

Gruß, David