<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.sharepointblogs.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Meine SharePoint-Notizen</title><link>http://www.sharepointblogs.com/wirkus/default.aspx</link><description>SharePoint-Notizen aus meiner täglichen Projektarbeit mit dem Microsoft Office SharePoint Server 2007</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Webpart Caching</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/10/10/webpart-caching.aspx</link><pubDate>Fri, 10 Oct 2008 14:29:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:21769</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=21769</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=21769</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/10/10/webpart-caching.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Gerade bei SharePoint-Portalen spielt das Thema &amp;quot;Serverlast&amp;quot; eine nicht unerhebliche Rolle. Als Webpart-Programmierer macht man sich meist um andere Dinge Gedanken, als um das Thema Caching. Hier versucht man eher die Serverlast durch ein&amp;nbsp;durchdachtes Design und intelleigente Programmierung zu verringern. Das Thema &amp;quot;Caching&amp;quot; spielt hier oftmals eine untergeordnete Rolle - zu Unrecht, wie ich finde. Denn auch bei Webparts kann man gut Caching-Mechanismen einsetzen, um die Serverlast zu verringern.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;strong&gt;Tobias Zimmergren&lt;/strong&gt; hat in seinem Blog einen interessanten und lesenswerten &lt;a href="http://www.zimmergren.net/archive/2008/10/07/web-part-caching-–-a-simple-approach.aspx"&gt;Artikel&lt;/a&gt; zu diesem Thema veröffentlicht.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=21769" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category></item><item><title>Benachrichtigungseinstellungen editieren - Tool als Download</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/23/benachrichtigungseinstellungen-editieren.aspx</link><pubDate>Tue, 23 Sep 2008 12:33:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:21142</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=21142</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=21142</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/23/benachrichtigungseinstellungen-editieren.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Ein paar Tage ist es nun her seit mich ein Kunde angerufen hat, weil er Probleme mit einigen Benachrichtigungseinstellungen hatte. Was war passiert? Nun, als SharePoint-Neuling hatte er als Administrator ein paar Benachrichtigungen an SharePoint-Listen eingetragen und als zu benachrichtigen Benutzer keine Benutzer, sondern Gruppen aus seinem ActiveDirectory eingetragen. Nach einigen Versuchen hatte er viel zu viele Benachrichtigungen eingetragen und löste dadurch eine Flut von eMails aus,&amp;nbsp;sobald Einträge in den Listen geändert wurden. Er rief mich an, weil er wissen wollte, wie er diese Benachrichtigungen wieder löschen kann.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Ich habe ihm gezeigt, wie er in den Websiteeinstellungen die Benachrichtigungen anzeigen und löschen kann. Allerding mußte ich ziemlich bald zugeben, dass diese Methode nicht besonders benutzerfreundlich ist. Wie der folgende Screenshot zeigt, werden in dieser Ansicht nur die eingerichteten Benachrichtigungen angezeigt - allerdings ohne weitere Parameter - und so ist es ziemlich mühsam herauszufinden, welche Benachrichtigung beibehalten werden soll und welche aufgrund falscher Parametrierung gelöscht werden soll.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/21143/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/21143/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Natürlich konnte ich unserem Kunden weiterhelfen, denn für solche Problemfälle hatten wir vor einiger Zeit schon ein kleines Entwicklertool geschrieben. Dieses Tool habe ich etwas überarbeitet und modernisiert und unserem Kunden zur Verfügung gestellt. Es funktioniert ein wenig anders, als die vergleichbare SharePoint-Benachrichtigungsansicht: da Benachrichtigungen zwar nicht physikalisch, aber immerhin logisch mit Listen oder Bibliotheken verbunden sind, haben wir bei diesem Tool die Auswahl von Benachrichtigungen eng mit der Auswahl von Webs und Listen verbunden. &lt;u&gt;Bedeutet:&lt;/u&gt; ein Anwender wählt in diesem Tool ein Web aus, danach werden ihm alle Listen in diesem Web angezeigt. Wählt der Benutzer nun noch eine Liste aus, werden ihm alle Benachrichtigungen mit den wichtigsten Parametern angezeigt, die mit der ausgewählten Liste logisch verbunden sind.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/21144/original.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/21144/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/21144/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Die wichtigsten Parameter einer Benachrichtigung können hier geändert werden und es ist auch möglich, die komplette Benachrichtigung zu löschen. Mit diesem Tool kann sich ein SharePoint-Administrator sehr schnell einen Überblick über alle eingerichteten Benachrichtigungen verschaffen. Wer mehr über die Codierung des &lt;em&gt;Change Type&lt;/em&gt; erfahren möchte, der findet in &lt;a class="" href="http://sharepoint.microsoft.com/blogs/harshc/Lists/Posts/Post.aspx?ID=5"&gt;Harsh&amp;#39;s Blog (&lt;em&gt;retrieving user alerts via object model&lt;/em&gt;)&lt;/a&gt; eine gute Auflistung der einzelnen numerischen Werte.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Dieses Tool stelle ich -wie meine bisherigen Tools auch- für Interessierte kostenlos zur Verfügung. Gegen eine kleine Registrierung kann sich jeder ein ZIP-Archiv mit alle bisherigen SharePoint-Tools &lt;a class="" href="http://www.its-technidata.de/Leistungen/sharepoint_download.asp"&gt;über diesen Link&lt;/a&gt; kostenlos&amp;nbsp;herunterladen. Wie bisher auch erfolgt der Einsatz dieses Tools auf eigenes Risiko.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Informationen über meine bisherigen SharePoint-Tools finden sich &lt;a class="" href="http://www.sharepointblogs.com/wirkus/archive/2008/08/14/sharepoint-listen-und-die-namen-der-spalten.aspx"&gt;hier&lt;/a&gt;&amp;nbsp;und &lt;a class="" href="http://www.sharepointblogs.com/wirkus/archive/2007/09/04/ein-ausblenden-von-spalten-bei-sharepoint-listen-und-bibliotheken.aspx"&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=21142" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>How to: Fehlende Workflow-Projektvorlagen in VS2008 / Installationsanleitung</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/18/how-to-fehlende-workflow-projektvorlagen-in-vs2008-installationsanleitung.aspx</link><pubDate>Thu, 18 Sep 2008 12:43:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20994</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20994</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20994</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/18/how-to-fehlende-workflow-projektvorlagen-in-vs2008-installationsanleitung.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Vor Kurzem setzte ich eine virtuelle Umgebung auf, um ein paar Workflows mit Visual Studio 2008 für SharePoint 2007 zu erstellen. Nach der Installation von Visual Studio 2008 stellte ich mit Verwunderung fest, dass die Projektvorlagen für die SharePoint-Workflows fehlen. Erwartet hätte ich die im folgenden Screenshot dargestellten (und in rot markierten) Projektvorlagen:&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;a target="_blank" href="http://www.sharepointblogs.com/photos/wirkus/images/20995/original.aspx"&gt;&lt;img border="0" src="http://www.sharepointblogs.com/photos/wirkus/images/20995/secondarythumb.aspx" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Nach einiger Recherche habe ich dann aber doch noch herausgefunden, welche Optionen man bei der Installation von Visual Studio 2008 auswählen muss, um Projektvorlagen für SharePoint 2007 Workflows auswählen zu können. Die benötigte Installationsoption zeigt der folgende Screenshot:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.sharepointblogs.com/photos/wirkus/images/20996/original.aspx"&gt;&lt;/a&gt;&lt;a target="_blank" href="http://www.sharepointblogs.com/photos/wirkus/images/20999/original.aspx"&gt;&lt;img border="0" src="http://www.sharepointblogs.com/photos/wirkus/images/20999/secondarythumb.aspx" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Etwas verwirrend finde ich die Sache schon, denn in der Beschreibung dieser Option steht eine Menge über &lt;em&gt;VSTO&lt;/em&gt;, aber nichts über SharePoint und Workflows. Aus diesem Grunde einen kleinen Hinweis an die Visual Studio Product Group bei Microsoft: ein Hinweis auf SharePoint und Workflows in der Beschreibung zu dieser Installationsoption wäre hilfreich und würde vielen Visual Studio Usern die Auswahl der benötigten Installationsoptionen erleichtern.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20994" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>How to: Upload größerer Dateien in eine SharePoint Bibilothek</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/12/how-to-upload-gr-246-223-erer-dateien-in-eine-sharepoint-bibilothek.aspx</link><pubDate>Fri, 12 Sep 2008 14:25:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20832</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20832</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20832</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/12/how-to-upload-gr-246-223-erer-dateien-in-eine-sharepoint-bibilothek.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;In unserem Intranet wollten wir die Upload-Größe für einzelne Dateien bzw. mehrere Dateien erhöhen. In der Zentraladministration gibt es dafür eine Einstellung, die normalerweise auf 50MB steht. Nachdem wir diesen Wert auf 200MB verändert haben, klappt es aber erstaunlicherweise immer noch nicht, eine einzelne Datei in eine SharePoint Dokumentenbibliothek hochzuladen, wenn diese Datei größer als 50MB war.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Nach einigen Recherchen sind wir auf einen KB-Artikel (&lt;a class="" href="http://support.microsoft.com/kb/925083"&gt;KB925083&lt;/a&gt;) gestossen, der ein ähnliches Problem beschreibt. Aber auch dieser Artikel und die hier beschriebenen Lösungsmöglichkeiten lösten unser Problem nicht. &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Zum Glück gibt es aber noch STSADM - und genau hier wurden wir fündig. Mit folgendem Befehl läßt sich die Dateigröße für Uploads ändern:&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="3"&gt;stsadm -o setproperty -propertyname max-file-post-size -propertyvalue 200 -url &lt;/font&gt;&lt;a href="http://server/" target="_blank" rel="nofollow"&gt;&lt;font face="courier new,courier" size="3"&gt;http://server/&lt;/font&gt;&lt;/a&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;font color="#0000ff"&gt;server&lt;/font&gt;&amp;gt; muss natürlich gegen die tatsächliche URL ausgetauscht werden.&lt;/p&gt;
&lt;p&gt;Ich muss zugegben - so langsam werde ich immer mehr zum Fan von STSADM.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20832" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category></item><item><title>Neue Versionen der SharePoint-SDKs</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/11/neue-versionen-der-sharepoint-sdks.aspx</link><pubDate>Thu, 11 Sep 2008 11:24:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20792</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20792</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20792</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/11/neue-versionen-der-sharepoint-sdks.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Soeben bei Microsoft entdeckt - für MOSS und WSS gibt es aktualisierte SDKs. Beide liegen nun in der &lt;strong&gt;Version 1.4&lt;/strong&gt; vor. Wenn ich mir die Auflistung der Neuerungen ansehen, muss ich sagen: der Download lohnt sich. Microsoft hat wieder einiges Neues und Nützliches für die SharePoint-Community zusammengestellt.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en"&gt;MOSS SDK Version 1.4&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=05E0DD12-8394-402B-8936-A07FE8AFAFFD&amp;amp;displaylang=en"&gt;WSS SDK Version 1.4&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20792" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category></item><item><title>How to: Flash-Animationen in SharePoint anzeigen</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/08/how-to-flash-animationen-in-sharepoint-anzeigen.aspx</link><pubDate>Mon, 08 Sep 2008 09:00:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20652</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20652</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20652</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/08/how-to-flash-animationen-in-sharepoint-anzeigen.aspx#comments</comments><description>&lt;p style="text-align:justify;"&gt;Um Flash-Animationen in SharePoint zu verwenden, gibt es unterschiedliche Wege. Der einfachste, aber auch unflexibelste Weg ist, einfach ein Inhaltseditor-WebPart mit ein paar Zeilen HTML-Code zu füllen. Auf diese Weise bekommt man zwar recht schnell eine Flash-Animation auf eine SharePoint-Seite, aber diese Art der Lösung ist mir einfach zu unflexibel. Ich bevorzuge hier eine flexiblere Lösung und setze deswegen ein WebPart ein.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Für unseren eigenen Internet-Auftritt haben ich ein kleines WebPart entwickelt. Dieses WebPart zieht sich die anzuzeigenen Flash-Animationen aus einer benutzerdefinierten SharePoint-Liste (bzw. aus dem Anhang eines Eintrags) und zeigt diese Animation dann an. Vorteil dieser Lösung: sowohl die SharePoint-Seite, als auch das WebPart müssen nicht verändert werden, wenn ein andere Flash-Animation angezeigt werden soll.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Den Rohbau dieses WebParts möchte ich hier veröffentlichen. Um etwas Rechenleistung einzusparen, habe ich im vorliegenden Fall auf den &lt;i&gt;WMODE&lt;/i&gt;-Parameter bzw. die Transparenz-Einstellung verzichtet. Solange man &amp;#39;nur&amp;#39; eine Flash-Animation auf einer SharePoint-Seite anzeigen möchte, sind diese Einstellungen nicht notwendig. Die Member-Variablen &lt;i&gt;m_iFlashWidth &lt;/i&gt;und &lt;i&gt;m_iFlashHeight&lt;/i&gt; geben die Breite und die Höhe des Ausgabebereichs an. Die Member-Variable &lt;i&gt;m_strFlashUrl&lt;/i&gt; enthält die URL der anzuzeigen Flash-Animation. Wer lieber ein Inhaltseditor-WebPart benutzen möchte, um eine Flash-Animation anzuzeigen, der braucht nur den HTML-Code aus der Render-Methode einzufügen und statt der Member-Variablen feste Werte einzusetzen.&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Text;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Web.UI;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Web.UI.WebControls.WebParts;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff"&gt;namespac&lt;/font&gt;e Technidata.ITS.MOSS.Webparts&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public class&lt;/font&gt; &lt;font color="#0099cc"&gt;ITSFlashPlayer&lt;/font&gt; : &lt;font color="#0099cc"&gt;WebPart&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private int&lt;/font&gt; m_iFlashWidth = 300;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private int&lt;/font&gt; m_iFlashHeight = 200;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private string&lt;/font&gt; m_strFlashUrl = &amp;quot;&amp;quot;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; ITSFlashPlayer()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExportMode = &lt;font color="#0099cc"&gt;WebPartExportMode&lt;/font&gt;.All;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;protected override void&lt;/font&gt; Render(HtmlTextWriter writer)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0099cc"&gt;StringBuilder&lt;/font&gt; strHTML = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#0099cc"&gt;StringBuilder&lt;/font&gt;();&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append&lt;font color="#cc0000"&gt;(&amp;quot;&amp;lt;OBJECT classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 &amp;quot;&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append(&lt;font color="#cc0000"&gt;&amp;quot;codebase=\&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0%5C"&gt;&lt;font color="#cc0000" face="courier new,courier"&gt;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\&lt;/font&gt;&lt;/a&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#cc0000"&gt;&amp;quot; &amp;quot;&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append(&lt;font color="#0000ff"&gt;string&lt;/font&gt;.Format(&lt;font color="#cc0000"&gt;&amp;quot;Width=\&amp;quot;{0}\&amp;quot; Height=\&amp;quot;{1}\&amp;quot;&amp;gt; &amp;quot;&lt;/font&gt;, m_iFlashWidth, m_iFlashHeight));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append(&lt;font color="#0000ff"&gt;string&lt;/font&gt;.Format(&lt;font color="#cc0000"&gt;&amp;quot;&amp;lt;PARAM NAME=\&amp;quot;movie\&amp;quot; VALUE=\&amp;quot;{0}\&amp;quot;&amp;gt; &amp;quot;&lt;/font&gt;, m_strFlashUrl));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append(&lt;font color="#cc0000"&gt;&amp;quot;&amp;lt;PARAM NAME=\&amp;quot;quality\&amp;quot; VALUE=\&amp;quot;high\&amp;quot;&amp;gt; &amp;quot;&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strHTML.Append(&lt;font color="#0000ff"&gt;string&lt;/font&gt;.Format(&lt;font color="#cc0000"&gt;&amp;quot;&amp;lt;EMBED src=\&amp;quot;{0}\&amp;quot; quality=high WIDTH=\&amp;quot;{1}\&amp;quot; HEIGHT=\&amp;quot;{2}\&amp;quot; TYPE=\&amp;quot;application/x-shockwave-flash\&amp;quot; PLUGINSPAGE=\&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash%5C%22%3E%3C/EMBED%3E%3C/OBJECT"&gt;&lt;font color="#cc0000" face="courier new,courier"&gt;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\&amp;quot;&amp;gt;&amp;lt;/EMBED&amp;gt;&amp;lt;/OBJECT&lt;/font&gt;&lt;/a&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#cc0000"&gt;&amp;gt;&amp;quot;&lt;/font&gt;, m_strFlashUrl, m_iFlashWidth, m_iFlashHeight));&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write(strHTML.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img src="http://static.technorati.com/pix/fave/tech-fav-1.png" alt="Add to Technorati Favorites" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20652" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category></item><item><title>Patrick Tisseghem unerwartet verstorben</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/09/06/patrick-tisseghem-unerwartet-verstorben.aspx</link><pubDate>Sat, 06 Sep 2008 09:13:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20612</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20612</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20612</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/09/06/patrick-tisseghem-unerwartet-verstorben.aspx#comments</comments><description>&lt;p&gt;Vor wenigen Minuten habe ich &lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/09/05/we-ll-miss-you-patrick.aspx" class=""&gt;hier&lt;/a&gt; gelesen, dass Patrick Tisseghem am 3. September in Gothenburg (Schweden) offensichtlich an Herzversagen verstorben ist.&lt;/p&gt;
&lt;p&gt;Ich hatte die Gelegenheit, Patrick auf den letzten SharePoint Conferences persönlich zu treffen und mit ihm zu sprechen. Ich habe Patrick als sehr erfahrenen SharePoint-Architekten kennengelernt, der immer ein offenes Ohr und einen guten Rat für andere SharePoint-Entwickler oder -Architekten hatte. Die wenn auch kurzen Gespräche mit ihm waren mir sehr wertvoll und wichtig.&lt;/p&gt;
&lt;p&gt;Mit Patrick Tisseghem verliert die weltweite SharePoint-Gemeinde ein wertvolles und aktives Mitglied.&lt;/p&gt;
&lt;p&gt;Auch ich möchte seiner seiner Familie mein tiefempfundenes Beileid aussprechen.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20612" width="1" height="1"&gt;</description></item><item><title>Übersicht aller SharePoint-Versionen</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/08/29/220-bersicht-aller-sharepoint-versionen.aspx</link><pubDate>Fri, 29 Aug 2008 09:18:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20342</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20342</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20342</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/08/29/220-bersicht-aller-sharepoint-versionen.aspx#comments</comments><description>&lt;p&gt;Im Blog von &lt;strong&gt;Aaron Saikovski&lt;/strong&gt; habe ich eine interessante Aufstellung über die aktuellen SharePoint-Versionen gefunden.&amp;nbsp; &lt;/p&gt;
&lt;table style="BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;BORDER-COLLAPSE:collapse;BORDER-TOP:medium none;BORDER-RIGHT:medium none;mso-border-alt:solid #7BA0CD 1.0pt;mso-border-themecolor:accent1;mso-border-themetint:191;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;" class="MsoTableMediumGrid1Accent1" cellspacing="0" cellpadding="0" class="MsoTableMediumGrid1Accent1"&gt;

&lt;tr style="mso-yfti-irow:-1;mso-yfti-firstrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#7ba0cd 1pt solid;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:14pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Service Pack/Hotfix Version&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#7ba0cd 1pt solid;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:14pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;WSS V3.0&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#7ba0cd 1pt solid;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:14pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;MOSS 2007&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:0;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx"&gt;&lt;span style="COLOR:blue;"&gt;Infrastructure Update &lt;/span&gt;&lt;/a&gt;(&lt;a href="http://support.microsoft.com/kb/951695"&gt;&lt;span style="COLOR:blue;"&gt;KB951695&lt;/span&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://support.microsoft.com/kb/951297"&gt;&lt;span style="COLOR:blue;"&gt;KB951297&lt;/span&gt;&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6318&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6318&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Post-SP1 hotfix (&lt;a href="http://support.microsoft.com/kb/953137"&gt;&lt;span style="COLOR:blue;"&gt;KB953137&lt;/span&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://support.microsoft.com/kb/953138"&gt;&lt;span style="COLOR:blue;"&gt;KB953138&lt;/span&gt;&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6316.500&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6316.500&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Post-SP1 hotfix (&lt;a href="http://support.microsoft.com/kb/952698/"&gt;&lt;span style="COLOR:blue;"&gt;KB952698&lt;/span&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://support.microsoft.com/kb/952704/"&gt;&lt;span style="COLOR:blue;"&gt;KB952704&lt;/span&gt;&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6315&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6315&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Post-SP1 hotfix (&lt;a href="http://blogs.technet.com/denish/archive/2008/03/12/blackout-hotfixes-rollups-for-moss-and-wss-3-0-available.aspx"&gt;&lt;span style="COLOR:blue;"&gt;KB948945&lt;/span&gt;&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6303&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6303&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:4;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Post-SP1 hotfix (&lt;a href="http://blogs.technet.com/denish/archive/2008/02/12/post-sp1-rollup-hotfix-has-been-released.aspx"&gt;&lt;span style="COLOR:blue;"&gt;KB941274&lt;/span&gt;&lt;/a&gt;) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6301&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6301&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:5;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Post-SP1 hotfix (&lt;a href="http://blogs.technet.com/denish/archive/2008/02/12/post-sp1-rollup-hotfix-has-been-released.aspx"&gt;&lt;span style="COLOR:blue;"&gt;KB941422&lt;/span&gt;&lt;/a&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6300&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6300&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:6;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Service Pack 1&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6219&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#a7bfde;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:127;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.6219&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:7;mso-yfti-lastrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#7ba0cd 1pt solid;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:267.65pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-border-themecolor:accent1;mso-border-themetint:191;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;Release To Manufacturing (RTM)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:92.15pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.4518&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba0cd 1pt solid;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;PADDING-LEFT:5.4pt;WIDTH:100.8pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3dfee;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#7ba0cd 1pt solid;PADDING-TOP:0cm;mso-background-themecolor:accent1;mso-background-themetint:63;mso-border-left-alt:solid #7BA0CD 1.0pt;mso-border-left-themecolor:accent1;mso-border-left-themetint:191;mso-border-top-alt:solid #7BA0CD 1.0pt;mso-border-top-themecolor:accent1;mso-border-top-themetint:191;mso-border-bottom-themecolor:accent1;mso-border-bottom-themetint:191;mso-border-right-themecolor:accent1;mso-border-right-themetint:191;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:DE;"&gt;12.0.0.4518&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/aaronsaikovski/archive/2008/07/31/quick-field-reference-moss-2007-wss-v3-0-version-guide.aspx"&gt;Hier der Link auf den Artikel im Blog von Aaron Saikovski.&lt;/a&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20342" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>How to: Professionelle Datenanzeige mit dem Control SPGridView</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/08/21/how-to-professionelle-datenanzeige-mit-dem-control-spgridview.aspx</link><pubDate>Thu, 21 Aug 2008 11:25:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:20061</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=20061</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=20061</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/08/21/how-to-professionelle-datenanzeige-mit-dem-control-spgridview.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Angeregt durch ein WebPart von &lt;a class="" href="http://www.hezser.de/"&gt;René Hézser&lt;/a&gt;&amp;nbsp;habe ich mir mal das Control SPGridView genauer angesehen. Im Gegensatz zum &amp;#39;normalen&amp;#39; GridView wird SPGridView von SharePoint selbst verwendet, um z.B. den Inhalt von SharePoint-Listen anzuzeigen. Der große Vorteil des SPGridView: dieses Control bietet Unterstützung für Sortierung, Filterung und Paginierung - und passt sich ohne weitere Programmierung an das Layout von SharePoint an.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Im Internet finden sich einige interessante Artikel darüber, wie man eine Datenanzeige mit einem SPGridView realisieren kann. Aber jeder dieser Artikel behandelt leider immer nur einen Teilaspekt - ein umfassendes Beispiel zum Thema SPGridView habe ich nicht gefunden. Aus diesem Grund habe ich selbst das folgende Beispiel geschrieben. Es zeigt beispielhaft die Datenanzeige mit einem SPGridView mit Sortierung, Paginierung und Filterung. Leider zeigt das SPGridView beim Filtern von Spalten kein Filter-Icon an, wie man es von SharePoint-Listen kennt. Hier musste ich selbst ein wenig recherchieren - aber mit Hilfe von &lt;strong&gt;Greg Galipeau&lt;/strong&gt; konnte ich auch dafür eine Lösung finden. Der Trick besteht darin, sich an das Event &lt;em&gt;RowDataBound&lt;/em&gt; zu hängen, hier die gefilterte Spalte auszulesen und mit diesen Informationen das Filter-Icon selbst in der Kopfzeile des SPGridView in der entsprechenden Spalte anzuzeigen.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Die folgenden beiden Screenshots zeigen das SPGridView in Aktion. Im zweiten Screenshot sieht man, dass das SPGridView auch die Sortier- und Filtericons verwenden und anzeigen kann.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/20062/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/20062/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/20063/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/20063/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Bevor wir uns jetzt auch noch den Sourcecode dazu ansehen, möchte ich noch darauf hinweisen, dass der folgende Code ausschließlich als Beispiel bzw. Anschauungsobjekt gedacht ist. Er ist in der vorliegenden Form nicht dafür geeignet, unverändert in eine produktive Umgebung übernommen zu werden. &lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Data;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Reflection;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; Microsoft.SharePoint.WebControls;&lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Web;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff"&gt;namespace&lt;/font&gt; Technidata.ITS.MOSS.Webparts&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; &lt;font color="#0099cc"&gt;SPGridViewDemo&lt;/font&gt; : System.Web.UI.WebControls.WebParts.&lt;font color="#0099cc"&gt;WebPart&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0099cc"&gt;SPGridView&lt;/font&gt; m_oGridView;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0099cc"&gt;ObjectDataSource&lt;/font&gt; oDataSource;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public&lt;/font&gt; SPGridViewDemo()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;protected override void&lt;/font&gt; CreateChildControls()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009999"&gt;SPGridView&lt;/font&gt;();&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Set basic gridview properties&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.ID = &lt;font color="#cc0033"&gt;&amp;quot;MyGridView&amp;quot;;&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.AutoGenerateColumns = &lt;font color="#0000ff"&gt;false&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.AlternatingRowStyle.BackColor = System.Drawing.&lt;font color="#009999"&gt;Color&lt;/font&gt;.WhiteSmoke;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Set properties for sorting&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.AllowSorting = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Set properties for paging&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.PageSize = 3;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.AllowPaging = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.PagerStyle.HorizontalAlign = &lt;font color="#009999"&gt;HorizontalAlign&lt;/font&gt;.Center;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Set properties for filtering&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.AllowFiltering = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.FilterDataFields = &lt;font color="#cc0033"&gt;&amp;quot;Vorname,Nachname&amp;quot;;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.FilteredDataSourcePropertyName = &lt;font color="#cc0033"&gt;&amp;quot;FilterExpression&amp;quot;;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.FilteredDataSourcePropertyFormat = &lt;font color="#cc0033"&gt;&amp;quot;{1} LIKE &amp;#39;{0}&amp;#39;&amp;quot;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Set EventHandler for setting the filter icon&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.RowDataBound += &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009999"&gt;GridViewRowEventHandler&lt;/font&gt;(m_oGridView_RowDataBound);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set columns of the SPGridView&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateGridViewColumns(&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateGridViewColumns(&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Create the datasource object&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataSource = new ObjectDataSource();&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; strTypeName = &lt;font color="#cc0033"&gt;&amp;quot;Technidata.ITS.MOSS.Webparts.SPGridViewDemo,&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTypeName += Assembly.GetExecutingAssembly().FullName;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataSource.TypeName = strTypeName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataSource.SelectMethod = &lt;font color="#cc0033"&gt;&amp;quot;FillDataTable&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataSource.ID = &lt;font color="#cc0033"&gt;&amp;quot;MyDataSource&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;HttpRequest&lt;/font&gt; oRequest = &lt;font color="#009999"&gt;HttpContext&lt;/font&gt;.Current.Request;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((oRequest.Form[&lt;font color="#cc0033"&gt;&amp;quot;__CALLBACKID&amp;quot;&lt;/font&gt;] == null)&amp;nbsp;&amp;nbsp;&amp;nbsp; ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (oRequest.Form[&lt;font color="#cc0033"&gt;&amp;quot;__CALLBACKPARAM&amp;quot;&lt;/font&gt;] == null) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (!oRequest.Form[&lt;font color="#cc0033"&gt;&amp;quot;__CALLBACKID&amp;quot;&lt;/font&gt;].EndsWith(&lt;font color="#cc0033"&gt;&amp;quot;MyGridView&amp;quot;&lt;/font&gt;)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;font color="#0000ff"&gt;null&lt;/font&gt; != ViewState[&lt;font color="#cc0033"&gt;&amp;quot;FilterExpression&amp;quot;&lt;/font&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataSource.FilterExpression = (&lt;font color="#0000ff"&gt;string&lt;/font&gt;)ViewState&lt;font color="#cc0033"&gt;&amp;quot;FilterExpression&amp;quot;&lt;/font&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Controls.Add(oDataSource);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Bind SPGridView to datasource object&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.DataSourceID = oDataSource.ID;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Controls.Add(m_oGridView);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// IMPORTANT! Call this line after Controls.Add()&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.PagerTemplate = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;protected override void&lt;/font&gt; OnPreRender(System.&lt;font color="#009999"&gt;EventArgs&lt;/font&gt; e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ViewState[&lt;font color="#cc0033"&gt;&amp;quot;FilterExpression&amp;quot;&lt;/font&gt;] = oDataSource.FilterExpression; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;base&lt;/font&gt;.OnPreRender(e);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;protected override void&lt;/font&gt; Render(System.Web.UI.&lt;font color="#009999"&gt;HtmlTextWriter&lt;/font&gt; writer)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.DataBind();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;base&lt;/font&gt;.Render(writer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void m_oGridView_RowDataBound(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#009999"&gt;GridViewRowEventArgs&lt;/font&gt; e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((&lt;font color="#0000ff"&gt;null&lt;/font&gt; != sender) &amp;amp;&amp;amp; (e.Row.RowType == &lt;font color="#009999"&gt;DataControlRowType&lt;/font&gt;.Header))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; strFilteredColumn = ((&lt;font color="#009999"&gt;SPGridView&lt;/font&gt;)sender).FilterFieldName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetGridViewFilterIcon(m_oGridView, strFilteredColumn, e.Row);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public void&lt;/font&gt; SetGridViewFilterIcon(&lt;font color="#0000ff"&gt;SPGridView&lt;/font&gt; oGridView, &lt;font color="#0000ff"&gt;string&lt;/font&gt; strColumn, GridViewRow oRow)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;if&lt;/font&gt; ((&lt;font color="#0000ff"&gt;false&lt;/font&gt; == &lt;font color="#0000ff"&gt;string&lt;/font&gt;.IsNullOrEmpty(strColumn)) &amp;amp;&amp;amp; (&lt;font color="#0000ff"&gt;null&lt;/font&gt; != oRow))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Show icon on filtered column&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (&lt;font color="#0000ff"&gt;int&lt;/font&gt; iIndex = 0; iIndex &amp;lt; oGridView.Columns.Count; iIndex++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;DataControlField&lt;/font&gt; oField = oGridView.Columns[iIndex];&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oField.HeaderText == strColumn)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;Image&lt;/font&gt; oFilterIcon = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009999"&gt;Image&lt;/font&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oFilterIcon.ImageUrl = &lt;font color="#cc0033"&gt;&amp;quot;/_layouts/images/ewr093.gif&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oFilterIcon.ImageAlign = &lt;font color="#009999"&gt;ImageAlign&lt;/font&gt;.Left;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oFilterIcon.Style[System.Web.UI.&lt;font color="#009999"&gt;HtmlTextWriterStyle&lt;/font&gt;.MarginTop] = &lt;font color="#cc0033"&gt;&amp;quot;2px&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oFilterIcon.ID = &lt;font color="#cc0033"&gt;&amp;quot;FilterIcon&amp;quot;&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;Panel&lt;/font&gt; oPanel = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009999"&gt;Panel&lt;/font&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oPanel.Controls.Add(oFilterIcon);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oRow.Cells[iIndex].Controls.Add(oPanel);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;break&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;public static&lt;/font&gt; &lt;font color="#009999"&gt;DataTable&lt;/font&gt; FillDataTable()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;DataTable&lt;/font&gt; oDataTable = &lt;font color="#0000ff"&gt;new&lt;/font&gt; DataTable(&lt;font color="#cc0033"&gt;&amp;quot;Bond Actors&amp;quot;&lt;/font&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataRow row = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Create the columns&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Columns.Add(&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;, &lt;font color="#0000ff"&gt;typeof&lt;/font&gt;(&lt;font color="#0000ff"&gt;string&lt;/font&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Columns.Add(&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;, &lt;font color="#0000ff"&gt;typeof&lt;/font&gt;(&lt;font color="#0000ff"&gt;string&lt;/font&gt;));&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// Fill data table&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Sean&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Connery&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;George&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Lazenby&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Roger&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Moore&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Timothy&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Dalton&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Pierce&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Brosnan&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = oDataTable.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Vorname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Daniel&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[&lt;font color="#cc0033"&gt;&amp;quot;Nachname&amp;quot;&lt;/font&gt;] = &lt;font color="#cc0033"&gt;&amp;quot;Craig&amp;quot;&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDataTable.Rows.Add(row);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oDataTable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// --------------------&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;private void&lt;/font&gt; CreateGridViewColumns(&lt;font color="#0000ff"&gt;string&lt;/font&gt; strColumn)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009999"&gt;BoundField&lt;/font&gt; oGridColumn = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009999"&gt;BoundField&lt;/font&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oGridColumn.DataField = strColumn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oGridColumn.HeaderText = strColumn;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;// IMPORTANT! This line is needed to display the arrow icons&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oGridColumn.SortExpression = strColumn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oGridColumn.Visible = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_oGridView.Columns.Add(oGridColumn);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;u&gt;Nachtrag:&lt;/u&gt; ich bin noch auf ein kleines Problem gestossen: wenn gleichzeitig die Sortierung und die Filterung aktiviert ist und man dann die Sortierreihenfolge ändert, funktioniert das Filtern nicht mehr. Aber auch dafür findet sich eine Lösung - in diesem Fall habe ich mir ein paar Zeilen Code bei &lt;a class="" href="http://www.sharepointblogs.com/bobsbonanza/archive/2007/07/02/filtering-with-spgridview.aspx"&gt;Bob&amp;#39;s SharePoint Bonanza&lt;/a&gt; ausgeliehen und gleich in mein obiges Beispiel integriert. Das Prinzip ist: man sichert in den ViewStates den aktuellen Filter und setzt den Filter aus den ViewStates beim Erzeugen bzw. Parametrieren des Objekts wieder.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font face="arial,helvetica,sans-serif"&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=20061" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>SharePoint-Listen und die Namen der Spalten</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/08/14/sharepoint-listen-und-die-namen-der-spalten.aspx</link><pubDate>Thu, 14 Aug 2008 08:07:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:19746</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=19746</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=19746</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/08/14/sharepoint-listen-und-die-namen-der-spalten.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;SharePoint nutzt u.a. zur Speicherung von Daten Listen und Dokumentbibliotheken. Neben einigen vordefinierten Listen und Bibliotheken kann man auch benutzerdefinierte Listen erstellen und an die eigenen Bedürfnisse anpassen. Bei diesen benutzerdefinierten Listen kann man selbst festlegen, welche Spalten verwendet werden sollen und welchen Datentyp diese Spalten aufnehmen sollen. Und genau bei diesen Spalten bzw. den Namen der Spalten gibt es einiges zu beachten.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Wenn man eine neue Spalte in einer benutzerdefinierten Liste anlegen möchte, wechselt man in die Listen-Einstellungen und klickt dort auf &amp;#39;Spalte erstellen&amp;#39;. Jetzt gibt man der neuen Spalte einen Namen und wählt einen Datentyp aus einer Liste vordefinierter Datentypen aus. Das sieht dann z.B. so aus, wie in diesem Screenshot dargestellt:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/19748/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/19748/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Auch wenn man der Spalte nur einen einzigen Spaltennamen zuweisen kann (was auf den ersten Blick auch logisch und völlig selbstverständlich erscheint), existieren neben dem Spaltennamen, den man beim Erstellen einer neuen Spalte vergibt noch zwei weitere Spaltennamen. Diese beiden zusätzlichen Spaltennamen bekommt ein SharePoint-User nur sehr selten zu sehen, ein Programmierer, der ein WebPart, einen Eventhandler, einen Workflow oder einen Timerjob programmiert, sollte aber schon sehr genau wissen, was es mit diesen zusätzlichen Spaltennamen auf sich hat.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Der Spaltenname, der beim Erstellen einer neuen Spalte angegeben wird, wird als &lt;em&gt;Display Name&lt;/em&gt; bezeichnet. Wie dieser Name schon vermuten läßt, ist der &lt;em&gt;Display Name&lt;/em&gt; der Anzeigename einer Spalte. Dies bedeutet: überall in der Oberfläche wo es um das Anzeigen von Daten und Informationen geht, wird der &lt;em&gt;Display Name&lt;/em&gt; (Anzeigename) verwendet.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Beim Erstellen einer neuen Spalte erzeugt SharePoint (oder besser gesagt das unterlagerte Objekt-Modell) zwei weitere Spaltennamen: den &lt;em&gt;Internal Name&lt;/em&gt; und den &lt;em&gt;Static Name&lt;/em&gt;. Von diesen beiden Spaltennamen bekommt ein SharePoint-User kaum etwas zu sehen und auch ein SharePoint-Administrator oder ein Designer werden diese beiden zusätzlichen Spaltennamen nur selten zu Gesicht bekommen. Dennoch sind beide sehr wichtig und sollten besonders von Entwicklern beachtet werden.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Display-Name&lt;/em&gt; wird auch als Anzeigename bezeichnet und wird vom SharePoint-Benutzer beim Anlegen einer Spalte angegeben. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Static-Name&lt;/em&gt; wird von SharePoint beim Erzeugen einer neuen Spalte automatisch erzeugt.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Internal-Name&lt;/em&gt; wird ebenfalls von SharePoint beim Erzeugen einer neuen Spalte erzeugt.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Jetzt wissen wir, dass es nicht nur einen Spalten-Namen gibt, sondern drei - aber wozu braucht man denn drei Spaltennamen?&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;In erster Linie sind diese drei Spalten-Namen für Programmierer interessant. Da der &lt;em&gt;Display-Name&lt;/em&gt; (also der Anzeigename) nachträglich verändert werden kann, besteht gerade für die Programmierung die Notwendigkeit, nicht-veränderliche Spaltennamen zu haben, um Spalten auch nach der Änderung des &lt;em&gt;Display-Name&lt;/em&gt; noch identifizieren zu können. Beim Verändern des &lt;em&gt;Display-Names&lt;/em&gt; werden weder &lt;em&gt;Internal-Name&lt;/em&gt; noch &lt;em&gt;Static-Name&lt;/em&gt; verändert, dennoch ist der Static&lt;em&gt;-Name&lt;/em&gt; nicht ganz so unveränderlich, wie der &lt;em&gt;Internal-Name&lt;/em&gt;. Im Gegensatz zum &lt;em&gt;Internal-Name&lt;/em&gt; kann der &lt;em&gt;Static-Name&lt;/em&gt; nachträglich über Aufrufe aus dem SharePoint Objekt-Modell&amp;nbsp;verändert werden. &lt;em&gt;Static-Name&lt;/em&gt; und &lt;em&gt;Internal-Name&lt;/em&gt; müssen nicht zwingend gleich lauten.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Display-Name&lt;/em&gt; ist vom Benutzer direkt über die SharePoint-Oberfläche veränderbar und kann auch nachträglich beliebig oft umbenannt werden.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Static-Name&lt;/em&gt; bleibt beim Umbenennen einer Spalte unverändert, ist aber nicht wirklich unveränderbar. Über das&amp;nbsp;Objekt-Modell kann der &lt;em&gt;Static-Name&lt;/em&gt; verändert werden.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;der &lt;em&gt;Internal-Name&lt;/em&gt; bleibt ebenfalls beim Umbenennen unverändert und kann auch über Objekt-Modell Aufrufe nicht mehr verändert werden.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Um den &lt;em&gt;Static-Name&lt;/em&gt; zu ändern, reichen im Prinzip die folgenden Code-Zeilen:&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font face="courier new,courier" color="#000000"&gt;&lt;font color="#0099cc"&gt;SPList&lt;/font&gt; oList = ... &lt;br /&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; strColumnName = ...&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font face="courier new,courier" color="#000000"&gt;oList.Fields.GetFieldByInternalName(strColumnName).StaticName = &lt;font color="#cc0000"&gt;&amp;quot;NeuerName&amp;quot;;&lt;/font&gt;&lt;br /&gt;oList.Fields.GetFieldByInternalName(strColumnName).Update(&lt;font color="#0000ff"&gt;true&lt;/font&gt;);&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font face="courier new,courier"&gt;&lt;/font&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Der &lt;em&gt;Internal-Name&lt;/em&gt; scheint der wirklich eindeutige und unveränderbare Namen einer Spalte zu sein. Der &lt;em&gt;Static-Name&lt;/em&gt; ist für die Programmierung interessant - ein Beispiel dafür ist die Webpart-Programmierung. Bei uns haben wir Richtlinien (oder neu-deutsch: Best Practices) erarbeitet, wie wir welchen Spaltennamen bei der Programmierung einsetzen. Wenn bei einem Webpart über die Webpart-Properties z.B. ein Spaltenname einer SharePoint-Liste angegeben werden soll, verwenden wir dafür grundsätzlich den &lt;em&gt;Display-Name&lt;/em&gt;, um dem Designer die Arbeit der WebPart-Parametrierung zu erleichtern. Der Designer kann bei der Parametrierung eines WebParts die gleichen Spaltennamen eingeben, die er auch beim Anlegen der Liste verwendet hat.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Allerdings verwendet dann das eigentliche WebPart natürlich nicht mehr den in die Properties eingegebenen &lt;em&gt;Display-Name&lt;/em&gt;, sondern wandelt diesen mit Hilfe der zugehörigen Liste in den &lt;em&gt;Internal-Name&lt;/em&gt;. Intern arbeiten unsere WebParts grundsätzlich mit dem &lt;em&gt;Internal-Name&lt;/em&gt;. Es hat für uns aber manchmal einen Vorteil, statt des unveränderlichen &lt;em&gt;Internal-Name&lt;/em&gt; den nur bedingt unveränderlichen &lt;em&gt;Static-Name&lt;/em&gt; zu verwenden. Dieser Vorteil wird deutlich, wenn wir das Thema Mehrsprachigkeit bzw. &lt;em&gt;Variations&lt;/em&gt; betrachten. Angenommen wir haben zwei gleiche Listen - eine Liste mit deutschen Anzeigenamen und eine zweite Liste mit englischen Anzeigenamen.&amp;nbsp;Mit beide Listen soll ein selbstprogrammierter Eventhandler verbunden werden (&lt;a class="" href="http://www.sharepointblogs.com/wirkus/archive/2007/08/14/sharepoint-listen-und-eventhandler-registrierung.aspx"&gt;ein Beispiel dazu findet sich hier&lt;/a&gt;), der beim Beschreiben&amp;nbsp;einer bestimmten Spalte getriggert werden soll. In diesem Fall würde der Eventhandler mit dem &lt;em&gt;Static-Name&lt;/em&gt; der Triggerspalte arbeiten, denn der &lt;em&gt;Display-Name&lt;/em&gt; wird sich aufgrund der unterschiedlichen Sprachen unterscheiden. Da der &lt;em&gt;Static-Name&lt;/em&gt; zum Glück nicht vollständig unveränderlich ist, kann man -trotz unterschiedlichem &lt;em&gt;Display-Name&lt;/em&gt;- den &lt;em&gt;Static-Name&lt;/em&gt; nachträglich angleichen. Auf diese Weise kommt man mit einem Eventhandler&amp;nbsp;für zwei sprachlich unterschiedliche Listen aus.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Wie ändert man denn nun den &lt;em&gt;Static-Name&lt;/em&gt; einer SharePoint-Spalte, wenn dies nicht über die Oberfläche, sondern nur über das&amp;nbsp;Objekt-Modell geht? Um dies zu zeigen, habe ich ein kleines Tool geschrieben, welches auf &lt;a class="" href="http://www.its-technidata.de/Leistungen/SharepointDevelopment.asp"&gt;&lt;strong&gt;unserer Homepage kostenlos zum Download&lt;/strong&gt;&lt;/a&gt; (gegen eine kleine Registrierung) bereitsteht. Dieses Tool erlaubt die Auswahl eines Webs und einer Liste und zeigt die in der Liste vorhandenen Spalten mit ihrem &lt;em&gt;Internal-Name&lt;/em&gt; an. Durch Anklicken einer Spalte kann man diese auswählen und dann ggf. &lt;em&gt;Display-Name&lt;/em&gt; und &lt;em&gt;Static-Name&lt;/em&gt; ändern. Man kann sich so&amp;nbsp;einen schnellen Überblick über alle Spalten einer Liste verschaffen. Bei diesem Tool handelt es sich um ein Entwickler-Tool, welches wir intern bei unseren Entwicklungen nutzen. Für diesen Beitrag habe ich es ein wenig angepasst und aufgeräumt - dennoch bleibt es ein Entwickler-Tool und der Einsatz erfolgt &lt;u&gt;grundsätzlich auf eigenes Risiko&lt;/u&gt;!&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/picture19757.aspx" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/photos/wirkus/images/19757/original.aspx" target="_blank"&gt;&lt;img src="http://www.sharepointblogs.com/photos/wirkus/images/19757/secondarythumb.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Bei der Programmierung bzw. bei der Verwendung des SharePoint Objekt-Modells muss man aber sehr aufpassen, welchen Spaltennamen man mit welcher Methode verwenden kann bzw. soll. Leider ist&amp;nbsp;dies im SDK nicht einheitlich geregelt. Es gibt Methoden, bei denen schon aufgrund des Methodennamens klar ist, mit welchem Spaltennamen sie arbeiten: &lt;em&gt;SPFieldCollection.GetFieldByInternalName(name)&lt;/em&gt; arbeitet wie der Name bereits andeutet, mit dem &lt;em&gt;Internal-Name&lt;/em&gt; einer Spalte, während &lt;em&gt;SPFieldCollection[name]&lt;/em&gt;&amp;nbsp;den &lt;em&gt;Display-Name&lt;/em&gt; verwendet. Bei &lt;em&gt;SPListItem[name]&lt;/em&gt; wird die Sache noch etwas undurchsichtiger: hier sind alle drei Spaltennamen als Parameter erlaubt. Eine erste Übersicht von Methoden und deren Spalten-Parametern findet sich in diesem &lt;a class="" href="http://tomblog.insomniacminds.com/2008/01/25/sharepoint-internals-internalname-versus-displayname/"&gt;Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Um zu zeigen, dass es nicht schwierig ist, bei der Programmierung die einzelnen Spaltennamen sauber zu trennen, hier ein kleines Snippet, wie man mit dem &lt;em&gt;Display-Name&lt;/em&gt; den zugehörigen &lt;em&gt;Internal-Name&lt;/em&gt; ermitteln kann.&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font style="BACKGROUND-COLOR:#ffffff;" color="#0000ff"&gt;private string&lt;/font&gt; GetInternalColumnName(&lt;font color="#0099cc"&gt;SPList&lt;/font&gt; oList, &lt;font color="#0000ff"&gt;string&lt;/font&gt; strColumnDisplayName)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; strRetParam = &lt;font color="#0000ff"&gt;string&lt;/font&gt;.Empty;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;try&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strRetParam = oList.Fields.GetField(strColumnDisplayName).InternalName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strRetParam = strColumnDisplayName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; (strRetParam);&lt;br /&gt;}&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Ich hoffe, dass ich mit diesem&amp;nbsp;Beitrag zeigen konnte, wie wichtig es ist, gerade bei der Programmierung darauf zu achten, die unterschiedlichen Spaltennamen-Typen sauber zu trennen und sich &lt;u&gt;vor&lt;/u&gt; Beginn der Programmierung zu überlegen, mit welchem Typ von Spaltennamen gearbeitet werden soll. Aus eigener Erfahrung kann ich sagen, dass es sehr aufwändig werden kann, Sourcecode zu debuggen, bei dem dauernd und&amp;nbsp;scheinbar wahllos zwischen allen Spaltennamen-Typen gewechselt wird.&amp;nbsp;Auch hier gilt: ein&amp;nbsp;klar strukturiertes und durchdachtes Design macht das Programmieren und das Debuggen wesentlich einfacher!&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Bisher habe ich erstaunlich wenige Blog-Posts zu diesem Thema gefunden - Grund genug für mich, meine eigenen Erfahrungen zu diesem Thema in meinem Blog zusammenzufassen.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;Nachtrag&lt;/strong&gt;:&lt;/u&gt; der Link zum kostenlosen Download unserer SharePoint-Tool geht im Text dieses Beitrags etwas unter. &lt;a class="" href="http://www.its-technidata.de/Leistungen/SharepointDevelopment.asp"&gt;Deswegen hier nochmals der Link zu unserer SharePoint-Seite.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; 
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=19746" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category></item><item><title>How To: Wie behebt man das Problem mit der Add-On Meldung bzgl. der NAME.DLL?</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/08/08/how-to-wie-behebt-man-das-problem-mit-der-add-on-meldung-bzgl-der-name-dll.aspx</link><pubDate>Fri, 08 Aug 2008 08:09:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:19378</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=19378</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=19378</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/08/08/how-to-wie-behebt-man-das-problem-mit-der-add-on-meldung-bzgl-der-name-dll.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Vielleicht hat der eine oder andere Leser meines Blogs dieses Problem selbst schon einmal gehabt: man surft im Internet und möchte sich eine neue auf SharePoint-basierende Site ansehen und bekommt von seinem Browser folgende Meldung angezeigt:&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;&lt;a target="_blank" href="http://www.sharepointblogs.com/photos/wirkus/images/20303/original.aspx"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;a target="_blank" href="http://www.sharepointblogs.com/photos/wirkus/images/20303/original.aspx"&gt;&lt;img border="0" src="http://www.sharepointblogs.com/photos/wirkus/images/20303/640x31.aspx" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Gerade bei Internet-Auftritten von Unternehmen ist diese Meldung nicht nur lästig, sondern wirkt auf Kunden oft auch befremdlich. In Zeiten eines zum Glück deutlich gestiegen Sicherheitsbewußtseins beim Surfen im Internet hinterläßt eine solche Meldung bei vielen Surfern ein ungutes Gefühl.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Bei Intranet-Auftritten ist die NAME.DLL, die sich letztendlich hinter dieser Meldung verbirgt, nützlich und hilfreich. Dahinter verbirgt sich u.a. die &lt;em&gt;Smart-Tag&lt;/em&gt; bzw. &lt;em&gt;Presence&lt;/em&gt;-Funktionalität. Bei Internet-Auftritten hat diese NAME.DLL meist aber keine sinvolle Funktion, sondern stört eher dadurch, dass es Besucher einer Site verwirrt oder sogar abschreckt.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Microsoft beschreibt in einem Artikel zu &lt;a href="http://support.microsoft.com/kb/931509"&gt;&lt;font color="#3300ff"&gt;KB931509&lt;/font&gt;&lt;/a&gt;, wie man dieses Problem lösen kann. Hier werden mehrere Lösungsmöglichkeiten beschrieben, denn man kann dieses Problem auch einfach dadurch lösen, dass man die betreffende Site zur Liste der vertrauenswürdigen Sites im IE7 hinzufügt. Für Intranet-Sites mag das eine Lösung sein, bei Internet-Auftritten wird man seinen Besuchern kaum zumuten wollen, den neuen Firmenauftritt als vertrauenswürdig einzustufen! Im KB-Artikel von Microsoft wird aber auch eine serverseitige Lösungsmöglichkeit beschrieben, die ein paar Änderungen an der Masterpage voraussetzt.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;u&gt;Übrigens:&lt;/u&gt; im Zusammenhang mit&amp;nbsp;einem SharePoint Add-On&amp;nbsp;gibt es noch ein weiteres bekanntes Problem, welches sogar den IE7 zum Abstürzen bringen kann! Darüber und über eine Lösungsmöglichkeit habe ich &lt;a href="http://www.sharepointblogs.com/wirkus/archive/2008/01/08/absturz-im-ie-bei-zugriff-auf-dokumente-in-einer-dokumentbibliothek.aspx"&gt;&lt;font color="#3300ff"&gt;hier&lt;/font&gt;&lt;/a&gt; bereits vor einiger Zeit berichtet.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; 
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=19378" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Bug+_2F00_+Bug-Fix/default.aspx">Bug / Bug-Fix</category></item><item><title>How to: Mails mit Anhang aus Workflows heraus verschicken</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/07/17/howto-mails-mit-anhang-aus-workflows-heraus-verschicken.aspx</link><pubDate>Thu, 17 Jul 2008 13:36:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:18912</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=18912</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=18912</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/07/17/howto-mails-mit-anhang-aus-workflows-heraus-verschicken.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Das neue VisualStudio 2008 unterstützt einen Entwickler sehr gut bei der Erstellung von Workflows für SharePoint. Besonders der grafische Editor erleichtert das Erstellen der Workflow-Grundstruktur enorm. Momentan arbeite ich an einem benutzerdefinierten Workflow für einen inhouse Kunden. Dieser Workflow wird von einer SharePoint-Liste beim Einfügen eines neuen Elements getriggert. Eine der Aufgaben dieses Workflows soll das Verschicken einer E-Mail sein. Keine große Sache - schließlich bietet der grafische Workflow-Editor in VisualStudio 2008 das &lt;em&gt;SendMail&lt;/em&gt;-Objekt genau für solche Zwecke an. Aber sobald man versucht, mit diesem &lt;em&gt;SendMail&lt;/em&gt;-Objekt eine E-Mail mit einem Anhang (Attachment) zu verschicken, stößt man auf Schwierigkeiten. Das &lt;em&gt;SendMail&lt;/em&gt;-Objekt unterstützt leider keine Attachments!&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Es blieb mir also nichts anderes übrig, als statt des &lt;em&gt;SendMail&lt;/em&gt;-Objekts eine normale Code-Activity zu verwenden. Erschwerend kommt noch hinzu, dass die Datei, die als E-Mail Attachment verschickt werden soll, nicht im Dateisystem abgelegt wurde, sondern als Anhang an einem Listen-Eintrag einer SharePoint-Liste vorlag. Es ergaben sich also 2 Probleme, für die ich eine Lösung brauchte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;wie verschickt man E-Mails mit Anhang?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="TEXT-ALIGN:justify;"&gt;wie bekommt man den Dateianhang aus der Liste heraus und in die E-Mail herein?&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Das erste Problem läßt sich mit der Klasse &lt;em&gt;System.Net.Mail.MailMessage&lt;/em&gt; lösen. Dieses Objekt läßt sich ähnlich verwenden, wie das &lt;em&gt;SendMail&lt;/em&gt;-Objekt, unterstützt aber Anhänge. Im Gegensatz zum &lt;em&gt;SendMail&lt;/em&gt;-Objekt muss man aber hier den zu verwendenden SMTP-Server und die Absenderadresse angeben. Beides ist normalerweise in SharePoint (über die Zentraladministration) bereits definiert und man kann sich diese Einstellungen über das Objektmodell besorgen.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Das zweite Problem ist etwas kniffliger. Über den Dateinamen und die URL des SharePoint-Listen-Anhangs kann man sich ein &lt;em&gt;SPFile&lt;/em&gt;-Objekt erzeugen. Dieses &lt;em&gt;SPFile&lt;/em&gt;-Objekt kann man dann durch ein &lt;em&gt;Attachment&lt;/em&gt;-Objekt auslesen lassen. Danach kann man dieses &lt;em&gt;Attachment&lt;/em&gt;-Objekt der Attachments-Collection von &lt;em&gt;MailMessage&lt;/em&gt; hinzufügen.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Auch wenn es ursprünglich nach einer einfachen Sache aussah, stellte sich das Problem &amp;quot;&lt;em&gt;wie versende ich eine E-Mail mit Dateianhang aus einem Workflow&lt;/em&gt;&amp;quot; als interessante Herausforderung dar. Für interessierte Leser füge ich diesem Posting ein&amp;nbsp;kleines Code-Snippet bei. Es zeigt &lt;u&gt;eine&lt;/u&gt; Möglichkeit, wie man einen (bzw. den ersten) Dateianhang eines Eintrags in einer SharePoint-Liste als Anhang einer E-Mail verschicken kann.&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#0000ff"&gt;private void&lt;/font&gt; SendCustomerMail_ExecuteCode(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#009900"&gt;EventArgs&lt;/font&gt; e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;string&lt;/font&gt; strPathAttachment = &lt;font color="#0000ff"&gt;string&lt;/font&gt;.Empty;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;SPListItem&lt;/font&gt; oItem = workflowProperties.Item;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;font color="#009900"&gt;SPWebApplication&lt;/font&gt; oWebApp = workflowProperties.Site.WebApplication;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;MailMessage&lt;/font&gt; oMail = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009900"&gt;MailMessage&lt;/font&gt;();&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oMail.From = new &lt;font color="#009900"&gt;MailAddress&lt;/font&gt;(oWebApp.OutboundMailSenderAddress);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oMail.To.Add(m_strMailAddressCustomer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oMail.Subject = m_strMailSubjectCustomer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oMail.Body = m_strMailTextCustomer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oMail.IsBodyHtml = &lt;font color="#0000ff"&gt;false&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#009900"&gt;SPAttachmentCollection&lt;/font&gt; oAttachments = oItem.Attachments;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (0 &amp;lt; oAttachments.Count)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strPathAttachment = oAttachments.UrlPrefix + oAttachments[0];&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;SPFile&lt;/font&gt; oFile = oItem.ParentList.ParentWeb.GetFile(strPathAttachment);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#009900"&gt;Attachment&lt;/font&gt; oAttachment = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009900"&gt;Attachment&lt;/font&gt;(oFile.OpenBinaryStream(), oFile.Name);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.Attachments.Add(oAttachment);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;string&lt;/font&gt; strSmtpServer = oWebApp.OutboundMailServiceInstance.Server.Address;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#009900"&gt;SmtpClient&lt;/font&gt; oSmtpClient = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#009900"&gt;SmtpClient&lt;/font&gt;(strSmtpServer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oSmtpClient.UseDefaultCredentials = &lt;font color="#0000ff"&gt;true&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;oSmtpClient.SendAsync(oMail, &lt;font color="#990000"&gt;&amp;quot;UserState&amp;quot;&lt;/font&gt;);&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;An dieser Stelle möchte ich noch auf ein älteres Posting von mir hinweisen: dem &lt;em&gt;MailMessage&lt;/em&gt;-Objekt kann man per Eigenschaft (&lt;em&gt;IsBodyHTML&lt;/em&gt;) mitteilen, dass es die E-Mail als &amp;#39;Plain-Text&amp;#39; verschicken soll. Beim &lt;em&gt;SendMail&lt;/em&gt;-Objekt geht das leider nicht so einfach. Es ist aber dennoch möglich - &lt;a class="" href="http://www.sharepointblogs.com/wirkus/archive/2008/02/08/sharepoint-workflows-mit-visual-studio-e-mail-als-plain-text-verschicken.aspx"&gt;hier der Link zu meinem Beitrag&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Technorati Favorites" src="http://static.technorati.com/pix/fave/tech-fav-1.png" /&gt;&lt;/a&gt; 
			&lt;hr&gt;&lt;span style="font-size:10pt;"&gt;Posted on &lt;a href="http://www.sharepointblogs.com/"&gt;SharePoint Blogs&lt;/a&gt;&lt;/span&gt;
		  &lt;img src="http://www.sharepointblogs.com/aggbug.aspx?PostID=18912" width="1" height="1"&gt;</description><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/SharePoint+2007+Development/default.aspx">SharePoint 2007 Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/Development/default.aspx">Development</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/How+To/default.aspx">How To</category><category domain="http://www.sharepointblogs.com/wirkus/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Programmierung: Potentielle Memory-Leaks bei SPSite und SPWeb</title><link>http://www.sharepointblogs.com/wirkus/archive/2008/07/10/programmierung-potentielle-memory-leaks-bei-spsite-und-spweb.aspx</link><pubDate>Thu, 10 Jul 2008 10:35:00 GMT</pubDate><guid isPermaLink="false">1f6a1193-f4bb-4480-a5ae-b538d8b20f46:18618</guid><dc:creator>Oliver Wirkus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/rsscomments.aspx?PostID=18618</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sharepointblogs.com/wirkus/commentapi.aspx?PostID=18618</wfw:comment><comments>http://www.sharepointblogs.com/wirkus/archive/2008/07/10/programmierung-potentielle-memory-leaks-bei-spsite-und-spweb.aspx#comments</comments><description>&lt;p style="TEXT-ALIGN:justify;"&gt;Beim Programmieren im SharePoint-Umfeld sollte man großen Wert auf saubere und sichere Programmierung legen. Kaum etwas ist ärgerlicher, als wenn das selbstentwickelte WebPart im Portal des Kunden bei jedem Aufruf Speicher anfordert und diesen nicht wieder zurück gibt. &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Gerade beim SharePoint Objektmodell sollte man sehr genau wissen, was man macht bzw. wie man es macht - dies gilt besonders bei der Verwendung von &lt;em&gt;SPSite&lt;/em&gt; und &lt;em&gt;SPWeb&lt;/em&gt;.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Eine gute Zusammenfassung über das Thema habe ich im Blog von &lt;strong&gt;Roger Lamb&lt;/strong&gt; gefunden. Sein Artikel zum Thema&amp;nbsp;&lt;a class="" href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx"&gt;SharePoint 2007 and WSS 3.0 Dispose Patterns by Example&lt;/a&gt; ist&amp;nbsp;für alle SharePoint-Programmierer sehr interessant.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://www.sharepointblogs.com/wirkus"&gt;&lt;img alt="Add to Tec