<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>SharePoint Apps: Alexander Malek's weblog</title><link>http://blogs.msdn.com/b/alexma/</link><description>using data views and workflow to build apps in sharePoint designer</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Welcome to VS extensions for WSS!</title><link>http://blogs.msdn.com/b/alexma/archive/2006/11/07/welcome-to-vs-extensions-for-wss.aspx</link><pubDate>Tue, 07 Nov 2006 16:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1016595</guid><dc:creator>Alex Malek</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=1016595</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/11/07/welcome-to-vs-extensions-for-wss.aspx#comments</comments><description>&lt;P&gt;Download &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=19F21E5E-B715-4F0C-B959-8C6DCBDC1057&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=19F21E5E-B715-4F0C-B959-8C6DCBDC1057&amp;amp;displaylang=en"&gt;VSeWSS&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Greetings from TechEd Barcelona!&amp;nbsp;Today, we finally got to announce a project I've been working on for the last year: "Visual Studio 2005 extensions for Windows SharePoint Services 3.0". Yup, the name's a mouthful :). Explaining it is pretty easy though - make "F5" work for SharePoint stuff in VS! That's essentially what VSeWSS brings to the table. Once you have it installed, you can actually boot VS, create stuff for WSS and have it work. For example, if you want to build a web part, from the "New Project" dialog in VS, choose "Web Part" under the "C#/SharePoint" node. Add some code and you're done. You can&amp;nbsp;hit F5 and immediately debug your web part. Pretty cool, no? &lt;/P&gt;
&lt;P&gt;In addition to web part support, VSeWSS also helps you build Site Definitions, List Definitions and Content Types. Over the next few weeks, I'll use this blog to explain how to use the various parts of VSeWSS. In the meanwhile, download the bits and drop any questions you have to "&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;microsoft.public.sharepoint.development_and_programming". &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Cheers, &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;alex&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1016595" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/VSeWSS/">VSeWSS</category></item><item><title>My TechEd Slides</title><link>http://blogs.msdn.com/b/alexma/archive/2006/07/05/657223.aspx</link><pubDate>Thu, 06 Jul 2006 00:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:657223</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=657223</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/07/05/657223.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;Thanks again to everyone who showed up for the SharePoint Designer talks at TechEd! As promised, here are my slides from the presentation (attached to the posting). Thanks! -alex&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=657223" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-65-72-23/OFC210_2D00_Post.zip" length="3168383" type="application/x-zip-compressed" /></item><item><title>Changing the ‘return URL’ for SharePoint forms</title><link>http://blogs.msdn.com/b/alexma/archive/2006/06/17/635346.aspx</link><pubDate>Sat, 17 Jun 2006 19:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:635346</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=635346</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/06/17/635346.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;Here’s a quick little tidbit that will help when building SharePoint applications. By default, when users fill out a SharePoint form, they are navigated back to the "All Items" page after pressing OK. You can easily change this behavior by altering what is in the “source=http://…” part of the URL&amp;nbsp; "query string" on the form page. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt; Let's add a link to the Announcements “New Item” form on the home page, so that it returns the user back to the home page after they press ok.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Step 1)&amp;nbsp;Add the following URL to the home page:&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://&lt;site&gt;/Announcements/Forms/NewItem.aspx?Source=http://&lt;site&gt;/default.aspx"&gt;&lt;FONT face=Arial size=2&gt;http://&amp;lt;site&amp;gt;/Announcements/Forms/NewItem.aspx?Source=http://&amp;lt;site&amp;gt;/default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;That’s it! :) Once the user presses OK, the form will read the “source=” part of the URL and navigate the user back to that page.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Thanks to Jason and Andre for suggesting this blog tip!&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=635346" width="1" height="1"&gt;</description></item><item><title>So long TechEd (and thanks for all the fish)</title><link>http://blogs.msdn.com/b/alexma/archive/2006/06/16/634589.aspx</link><pubDate>Sat, 17 Jun 2006 00:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:634589</guid><dc:creator>Alex Malek</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=634589</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/06/16/634589.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;Just about to take off for Seattle – finally catching up on a week’s worth of email backlog :). Overall, TechEd was a blast. It was great to be able to show off SharePoint Designer to so many people. Thanks to everyone who came by after the sessions or to the booth. I got tons of great questions and suggestions, many of which will help us in planning vNext. Please keep the feedback coming!&lt;/FONT&gt; &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=634589" width="1" height="1"&gt;</description></item><item><title>SharePoint Designer at TechEd!</title><link>http://blogs.msdn.com/b/alexma/archive/2006/06/11/626154.aspx</link><pubDate>Sun, 11 Jun 2006 15:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:626154</guid><dc:creator>Alex Malek</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=626154</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/06/11/626154.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;I’m excited to be going to &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/events/teched2006/default.mspx"&gt;&lt;FONT face=Arial size=2&gt;TechEd &lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;this week. I'll be presenting two sessions on SharePoint Designer 2007. If you have any questions about building apps on SharePoint, definitely come by the session or the Office booths! See ya in Boston. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Session ID:&lt;/FONT&gt;&lt;/STRONG&gt; OFC210&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Session Title:&lt;/FONT&gt;&lt;/STRONG&gt; Office SharePoint Designer 2007: Create and Customize Microsoft SharePoint Web Sites and Build Workflow-Enabled Applications &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Description:&lt;/FONT&gt;&lt;/STRONG&gt; Come and learn about Office SharePoint Designer 2007. This is the powerful and easy to use tool for information workers to automate business processes and build efficient applications on top of the SharePoint platform, and tailor their SharePoint site to their needs in an IT-managed environment. &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Time Slot 1:&lt;/FONT&gt;&lt;/STRONG&gt; 6/13/2006 1:00PM-2:15PM [Breakout 08] &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Time Slot 2:&lt;/FONT&gt;&lt;/STRONG&gt; 6/14/2006 10:15AM-11:30AM&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt; [Breakout 12] &lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=626154" width="1" height="1"&gt;</description></item><item><title>5 Cool SharePoint Designer Features </title><link>http://blogs.msdn.com/b/alexma/archive/2006/06/01/626152.aspx</link><pubDate>Fri, 02 Jun 2006 03:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:626152</guid><dc:creator>Alex Malek</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=626152</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/06/01/626152.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;There is so much stuff in SharePoint Designer 2007, it's hard to pick favorites, but if I had to choose the five things I'm most excited about... &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT color=#a52a2a&gt;&lt;SPAN class=style1&gt;&lt;STRONG&gt;1) Data View v2:&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;BR&gt;In addition to update (form) support, we can also now create "aggregate" views across multiple sources, have a cool new Xpath "Expression builder", integration with the "Business Data Library", not to mention a nice UI for managing view parameters.&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT color=#a52a2a&gt;&lt;SPAN class=style1&gt;&lt;STRONG&gt;2) Workflow Designer:&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/FONT&gt;&lt;BR&gt;Leveraging the new "workflow" capabilities built into the SharePoint platform, we added a "rules-based" designer to SPD that allows you to quickly add application logic to your SharePoint apps. Think of it as a way to put code behind your apps. I'll be talking about this feature lots more soon :). &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#a52a2a&gt;&lt;SPAN class=style1&gt;3) CSS support:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;We built a whole slew of features to create and manage CSS styles. We also worked with the SharePoint team to make it possible to 'detach' from ows.css (now called core.css) and easily customize the SharePoint stylesheet. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#a52a2a&gt;&lt;SPAN class=style1&gt;4) Better code view:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;CSS/XSLT/Xpath intellisense, code view/design view sync for Data Views (best feature ever!), CSS hyperlinks, and more.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=style1&gt;&lt;FONT face=Arial color=#a52a2a size=2&gt;&lt;STRONG&gt;5) &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#a52a2a size=2&gt;&lt;STRONG&gt;Rich ASP.net integration: &lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;We collaborated with the Visual Studio team to build really deep support for ASP.net into SharePoint Designer, e.g. great previews in design view, full property grid support, as well as support for bringing up the native "builder" dialogs.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Welcome to the list of features I plan to blog about over the coming months :). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;oh ya, did I mention we also built "Re-Ghost Page"?!&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=626152" width="1" height="1"&gt;</description></item><item><title>Welcome to Office 2007 and SharePoint Designer!</title><link>http://blogs.msdn.com/b/alexma/archive/2006/05/25/616501.aspx</link><pubDate>Fri, 26 May 2006 06:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:616501</guid><dc:creator>Alex Malek</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=616501</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/05/25/616501.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Now that beta2 of Office is out (grab it &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/office/preview/beta/getthebeta.mspx"&gt;&lt;FONT face=Arial size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; for free!), I think it's a great time for me to switch over from talking about FrontPage 2003 to &lt;EM&gt;SharePoint Designer 2007&lt;/EM&gt;. In case you hadn't heard, a few months back &lt;/FONT&gt;&lt;A HREF="/rmauceri/archive/2006/02/16/533913.aspx"&gt;&lt;FONT face=Arial size=2&gt;we announced&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; that Office 2007 would include a new product called &lt;EM&gt;SharePoint Designer&lt;/EM&gt;, aimed specifically at enabling rapid application development for the SharePoint platform . SharePoint Designer (SPD) is very much the continuation of what we started with SharePoint app development in FrontPage XP and 2003. SPD takes the best parts of FrontPage and adds a ton of new capabilities to the Data View web part, a cool new "Workflow" designer for adding application logic to your SharePoint site, not to mention &lt;EM&gt;great &lt;/EM&gt;CSS and ASP.net support. Overall, I think this change is great for fans of building apps on SharePoint. And since Microsoft now has a dedicated product, &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/products/expression/en/web_designer/default.mspx"&gt;&lt;FONT face=Arial size=2&gt;Expression Web Designer&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;, for addressing the needs of web designers, we as the SharePoint Designer team can focus all of our efforts on building the absolute best design tool for SharePoint. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=616501" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Cool Outlook Trick</title><link>http://blogs.msdn.com/b/alexma/archive/2006/05/16/599006.aspx</link><pubDate>Tue, 16 May 2006 19:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:599006</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=599006</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/05/16/599006.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;One of my long pet peeves about Outlook is that if you search for a user in the “Global Address List” that happens to be in your “Contacts” list, Outlook always returns the entry from the contacts list. This is a pain since sometimes there is information in the global address book (e.g. phone number) that&amp;nbsp;one doesn't have copied to the local entry. Well, turns out there is a power user feature to work around this. If you type “=username” in the contact search box, it will always return the entry from the global address book. Sweet.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=599006" width="1" height="1"&gt;</description></item><item><title>Allowing Users to Filter/Search a Data View</title><link>http://blogs.msdn.com/b/alexma/archive/2006/04/25/614378.aspx</link><pubDate>Tue, 25 Apr 2006 19:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:614378</guid><dc:creator>Alex Malek</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=614378</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/04/25/614378.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;In my &lt;A HREF="/alexma/archive/2006/04/10/610934.aspx"&gt;previous post&lt;/A&gt;, I talked about how Web Part Connections can be used to pass data between Web Parts. I showed building a simple master/detail scenario, where you have one view, showing all the records in a data source, filtering a second "single item" detail view of the same source. There are tons of other scenarios where Connections are useful. For example,&amp;nbsp;imagine if you could&amp;nbsp;have a little form on your&amp;nbsp;web page, where any values entered into that form could be passed into a connection.&amp;nbsp;As luck would have it :^&amp;gt;, we built a part exactly for this scenario, called the "Form Web Part"! Little fyi: the Form Web Part was actually the very first feature I worked on when I came to MS, so I'm kinda partial to it&amp;nbsp;:) &lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;Quick example:&lt;/STRONG&gt; Using a Form Web Part to "search" the Title field of an Announcements List view&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;1) You can insert a Form Web Part by clicking Data/Insert Web Part, and then from the Web Parts task pane, dragging the Form Web Part into your page. By default, this is what the Form Web Part looks like, a single text box with a "Go" button:&lt;BR&gt;&lt;IMG height=53 src="http://static.flickr.com/72/158741705_2e10c99122_o.png" width=207&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Note: You can add more form controls (including other types of controls) to the part by using the Insert/Form menu, but for this scenario, the default setup will work.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;2) Next you need to add a view of the Announcements list to your page. We'll filter this view with the value entered into the&amp;nbsp;Form.&lt;BR&gt;&lt;IMG height=100 src="http://static.flickr.com/69/158741701_a410da4ddc_o.png" width=429&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;3) You can now right-click anywhere inside the Form Web Part and choose "Web Part Connections...". In the Connections Wizard, hit Next on the first two pages. On the third page, choose the "Announcements" part as your target part. However, unlike in the last example, instead of using "Filter View Using Data Values" as the &lt;EM&gt;Target Action&lt;/EM&gt;, choose "Modify View Using Parameters", and hit Next. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=386 src="http://static.flickr.com/75/158741702_23abf338a1_o.png" width=436&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;4) Long story short, there are two ways to use Web Part Connections: 1) as show in the &lt;/FONT&gt;&lt;A HREF="/alexma/archive/2006/04/10/610934.aspx"&gt;&lt;FONT face=Arial size=2&gt;previous post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;, the source part can affect the target using one of the default connection "verbs", e.g. filter the target part, or 2) the source part can just pass a value to the target part, and leave it to the target to do whatever it wants with that value. In this demo, we're using option 2, since we want to have finer control over the type of filtering done in the target part. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;The Data View has a default parameter we can use called "Input Parameter. The way to pass the value from the textbox in our form is by choosing "T1" in the left column. You then hit Next. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=386 src="http://static.flickr.com/74/158741703_077c933d32_o.png" width=467&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;4) After you hit Finish in the Connections Wizard, there is still one more step remaining. We need to go to the target part, in this case, the view on Announcements and define what to do with the value that comes from the parameter. For our scenario, since we want to Filter the view with the parameter value, select the Announcements view and choose the Data/Filter menu item, which will bring up the Data View filter UI. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;For the field name, choose "Title" - for the comparison, you likely want "Contains" - and for the value, we can plug the parameter in here by choosing "[Input Parameter]". &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://static.flickr.com/77/158749136_b1073e8c49_o.png"&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Press OK, and your done! Now, if you browse the page, you should be able to enter a value into the form part and have the view filter to only show values that contain what was typed in the form. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;EM&gt;Note:&lt;/EM&gt; You probably noticed that the view shows no records by default - this is due to the fact that the parameter we're filtering on is blank when the view first loads. One way to work around this is to give the parameter a "default value", which you can do in code view by searching for the following line, and setting the DefaultValue attribute to whatever you'd like the value to initially show.&lt;/FONT&gt; &lt;/P&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;
&lt;P class=style1&gt;&amp;lt;udc:ClientParameterBinding Name="filterParam" Location="Postback;Connection" DefaultValue="&lt;SPAN class=style2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;baz&lt;/FONT&gt;&lt;/SPAN&gt;"/&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=614378" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Using Web Part Connections to build a Master/Detail View</title><link>http://blogs.msdn.com/b/alexma/archive/2006/04/10/610934.aspx</link><pubDate>Mon, 10 Apr 2006 20:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:610934</guid><dc:creator>Alex Malek</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=610934</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/04/10/610934.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;One of the great new features part of SharePoint v2 is this thing called "Web Part Connections", which allows you to easily have Web Parts communicate with each other, thus adding a level of interactivity to your web applications. In a way, you can think of connections is as a &lt;EM&gt;data-driven &lt;/EM&gt;hyperlink, i.e. clicking the hyperlink will push some data to the second part, which can then consume that data. The most common Connection scenario is to use one part to filter another other one, e.g. imagine having a "master" view, where you can drill from each item to a detail view. &lt;/FONT&gt;
&lt;P class=style1&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;SPAN class=style5&gt;Quick Example: &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=style5&gt;Let's look at what's involved building a master/detail view of a products table. In this example, I'll use Data Views for both my master and detail view, but it should be noted that you can connect different types of parts together too! &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style6&gt;&lt;EM&gt;Step 1:&lt;/EM&gt;&lt;/SPAN&gt; The first step is to build a simple "master" view showing all the records in my products list&lt;BR&gt;&lt;IMG height=124 src="http://static.flickr.com/51/156535725_3aacba9a60_o.png" width=396&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style6&gt;&lt;EM&gt;Step 2:&lt;/EM&gt;&lt;/SPAN&gt; Next, on the same page, let's build a "detail" view that shows a single item from the Products list, but with more detail. &lt;BR&gt;&lt;IMG height=72 src="http://static.flickr.com/47/156535096_9f159efaf7_o.png" width=390&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style6&gt;&lt;EM&gt;Step 3:&lt;/EM&gt;&lt;/SPAN&gt; Once you have your views setup, you can quickly create a connection so that clicking an item in the master will cause the detail view to be filtered to the same item. To do this, right-click the field you want the connection hyperlink on, and choose the "Web Part Connections..." context menu item. This will bring up the Connections wizard. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style5&gt;When setting up a connection, it's easiest to think of the two parts as &lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class=style5&gt;source &lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN class=style5&gt;and&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN class=style5&gt;target&lt;/SPAN&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style5&gt;. The first step is to choose what you want from the source part. 99.9999% of the time, you simply want to grab some values from the source part and pass them along - this is the default option, so you can just click next. &lt;BR&gt;&lt;/SPAN&gt;&lt;IMG height=387 src="http://static.flickr.com/57/156535091_cbf0c71021_o.png" width=437&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;On the next page of the wizard, you get to choose which part to connect to. In the case of this master/detail scenario, I have the "detail" part on the same page, so I can click next again. &lt;BR&gt;&lt;IMG height=386 src="http://static.flickr.com/60/156535093_ba6e4fdecd_o.png" width=437&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;Here, we choose the specific part and what we want to do to that part. The default behavior is to filter the target part, which for our scenario is the desired behavior. &lt;BR&gt;&lt;IMG height=387 src="http://static.flickr.com/51/156535094_c57e889d2c_o.png" width=438&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;The last piece of information required is to choose what field the target part should be filtered to from the source part. Since both parts in this case are on the same list, we can use the ID field, since that is guaranteed to be unique. &lt;BR&gt;&lt;IMG height=386 src="http://static.flickr.com/51/156535095_27c85543c7_o.png" width=437&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;That's it! You can now click through and complete the wizard. After you hit "Finish", you'll notice that there is a hyperlink on the original field you selected.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=124 src="http://static.flickr.com/72/156535097_1c8c9e75d3_o.png" width=397&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style4&gt;&lt;FONT face=Arial size=2&gt;If you browse the page, you'll notice that clicking the hyperlink in the "master" view will cause the "detail" view to filter to the correct item. Sweet :)&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=610934" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>How to Create a Data View that Shows a Single Item</title><link>http://blogs.msdn.com/b/alexma/archive/2006/03/30/611226.aspx</link><pubDate>Fri, 31 Mar 2006 03:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:611226</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=611226</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/03/30/611226.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;When you first insert a Data View, the default "look" is always a tabular multi-item view; however, it's easy to change this to whatever style you want. We even include a few pre-built styles in the box that you can quickly switch between. To change the style of your view, go to the Data menu and click "Style...". From the "View Styles" dialog that pops up, you can change between a few different styles. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Quick example:&lt;/STRONG&gt; One of the more common types of views you'll often want to create is a "single item" item view.&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style1&gt;&lt;EM&gt;Step 1:&lt;/EM&gt;&lt;/SPAN&gt; Create a tabular Data View that includes the fields you want to end up in the single item view:&lt;BR&gt;&lt;IMG height=90 src="http://static.flickr.com/54/156805297_11051d2153_o.png" width=623&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;EM&gt;&lt;SPAN class=style1&gt;Step 2:&lt;/SPAN&gt; &lt;/EM&gt;Click Data/Styles and choose the forth style - repeating form with border. Your view should now look something like this: &lt;BR&gt;&lt;IMG height=209 src="http://static.flickr.com/69/156805299_319571c8a1_o.png" width=627&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN class=style1&gt;&lt;EM&gt;Step 3:&lt;/EM&gt;&lt;/SPAN&gt; The last step is to change the view so that it only shows one record. You can do this by clicking Data/Styles again and going to the "Options" tab of the View Styles dialog. At the bottom of the dialog is a section called "record sets", where you can change how many records are shown in your view. For the single item view scenario, we want to "limit the total number of items" to 1.&lt;BR&gt;&lt;IMG height=113 src="http://static.flickr.com/66/156581076_79b7f6ea23_o.png" width=414&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Voila, you now have a view showing just one item. The only thing left to do is filter the view to the specific item you care about :). &lt;BR&gt;&lt;IMG height=67 src="http://static.flickr.com/63/156805298_10c2c184fd_o.png" width=624&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next time, I'll show you how you can use a feature called "Web Part Connections" to allow users to dynamically filter a single item view from a "master" multi-item view.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=611226" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Welcome to Office 2007 and SharePoint Designer!</title><link>http://blogs.msdn.com/b/alexma/archive/2006/03/25/616421.aspx</link><pubDate>Sun, 26 Mar 2006 04:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:616421</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=616421</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/03/25/616421.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Now that beta2 of Office is out (grab it &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/office/preview/beta/getthebeta.mspx"&gt;&lt;FONT face=Arial size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; for free!), I think it's a great time for me to switch over from talking about FrontPage 2003 to &lt;EM&gt;SharePoint Designer 2007&lt;/EM&gt;. In case you hadn't heard, a few months back &lt;/FONT&gt;&lt;A HREF="/rmauceri/archive/2006/02/16/533913.aspx"&gt;&lt;FONT face=Arial size=2&gt;we announced&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; that Office 2007 would include a new product called &lt;EM&gt;SharePoint Designer&lt;/EM&gt;, aimed specifically at enabling rapid application development for the SharePoint platform . SharePoint Designer (SPD) is very much the continuation of what we started with SharePoint app development in FrontPage XP and 2003. SPD takes the best parts of FrontPage and adds a ton of new capabilities to the Data View web part, a cool new "Workflow" designer for adding application logic to your SharePoint site, not to mention &lt;EM&gt;great &lt;/EM&gt;CSS and ASP.net support. Overall, I think this change is great for fans of building apps on SharePoint. Since Microsoft now has a dedicated product, &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/products/expression/en/web_designer/default.mspx"&gt;&lt;FONT face=Arial size=2&gt;Expression Web Designer&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;, for addressing the needs of web designers, we as the SharePoint Designer team can focus all of our efforts on building the absolute best design tool for SharePoint. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=616421" width="1" height="1"&gt;</description></item><item><title>Conditional Image Swapping in a Data View</title><link>http://blogs.msdn.com/b/alexma/archive/2006/03/22/608988.aspx</link><pubDate>Thu, 23 Mar 2006 03:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:608988</guid><dc:creator>Alex Malek</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=608988</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/03/22/608988.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;One of the cooler uses for Conditional Formatting is to to dynamically swap between a set of icons/images, e.g. imagine a scenario where you want a red, yellow or green light based on how a sales department is tracking to budget. Although it's possible to build this kinda of view with the Conditional Formatting feature, it's a bit of a pain since you not only need to define the conditional to "show content", but also all the conditions when not to show the content. If you are swapping 3 or less images, you can get buy. However, since the number of total conditions grows exponentially with each image, it soon becomes untenable. Fortunately, the Data View is built on XSLT, which has a command exactly for this specific problem, and though we don't have UI to automatically create the right XSLT, it super easy to go into code view and made the change yourself. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Quick Example: &lt;/STRONG&gt;Imagine you have a Data View of products, where each product comes from a different county. The default view works, but it's a little on the boring side. It's also difficult to scan and quickly see which products come from which country. &lt;BR&gt;&lt;BR&gt;&lt;IMG height=146 src="http://static.flickr.com/68/154451019_92578d03c1_o.png" width=359&gt;&lt;BR&gt;&lt;BR&gt;A nice little improvement would be to show the country flag instead of the name of the country. &lt;BR&gt;&lt;IMG height=49 src="http://static.flickr.com/64/154451224_fca74238b6_o.png" width=163&gt;&lt;BR&gt;&lt;BR&gt;The first step to building this view is to drag one of the flag images into your view and use "Show Content" Conditional Formatting to only show the flag when it matches the country of origin. In this case, I'll start with the Canadian products.&lt;BR&gt;&lt;IMG height=164 src="http://static.flickr.com/47/154451018_9ce9e69bfe_o.png" width=358&gt;&lt;BR&gt;&lt;BR&gt;Next, you need to jump to code view and search for the XSLT that defines this conditional formatting: &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:if test="@country = 'Canada'"&amp;gt;&lt;/SPAN&gt;.&lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&lt;BR&gt;&lt;FONT face=Arial&gt;&lt;IMG height=83 src="http://static.flickr.com/46/154451010_5704859057_o.png" width=442&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;Instead of using &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:if&amp;gt;&lt;/SPAN&gt;, XSLT supports a tag called &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:choose&amp;gt;&lt;/SPAN&gt;, which is exactly for the scenario of choosing among multiple options. &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:choose&amp;gt;&lt;/SPAN&gt; is analogous to the C# Switch construct. To use &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:choose&amp;gt;&lt;/SPAN&gt;, first wrap the existing &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:if&amp;gt; &lt;/SPAN&gt;block with an &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:choose&amp;gt;&lt;/SPAN&gt; tag. Next, change the word &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;if&lt;/SPAN&gt; to &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;when&lt;/SPAN&gt;,, as shown here: &lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Arial&gt;&lt;IMG height=110 src="http://static.flickr.com/50/154451013_f9e2dd6720_o.png" width=472&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;The last thing to do is add one &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:when&amp;gt; &lt;/SPAN&gt;block for each of the possible images, like so:&lt;BR&gt;&lt;IMG height=202 src="http://static.flickr.com/57/154451014_504450f7ac_o.png" width=484&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;That's it. When you switch back to design view, you should see the following:&lt;BR&gt;&lt;IMG height=246 src="http://static.flickr.com/66/154451016_b7f0f1773e_o.png" width=359&gt;&lt;BR&gt;&lt;BR&gt;Note: you can also finish your &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;choose&lt;/SPAN&gt; block with an &lt;SPAN style="FONT-SIZE: x-small; COLOR: #800000; FONT-FAMILY: 'Courier New', Courier, monospace"&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;/SPAN&gt; block to define an "else" condition, i.e. when no condition matches.&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=608988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Conditional Formatting Internals</title><link>http://blogs.msdn.com/b/alexma/archive/2006/02/23/604530.aspx</link><pubDate>Thu, 23 Feb 2006 11:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:604530</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=604530</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/02/23/604530.aspx#comments</comments><description>The inner workings of Conditional Formatting are actually pretty straightforward. The key construct that makes the feature possible is a tag called &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;&amp;lt;xsl:if&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;, which is used to conditionally add content to the HTML output of the transform. &lt;BR&gt;&lt;BR&gt;It's easiest to grok &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:if&lt;/FONT&gt; &lt;/SPAN&gt;with the "show content" type of CondF. Basically, the content you want conditional shown is wrapped in a &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:if&lt;/FONT&gt;&lt;/SPAN&gt; tag, where the &lt;SPAN class=style4&gt;test&lt;/SPAN&gt; attribute of the tag defines the "condition" to be evaluated. If the condition is true, the content contained within the &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:if&lt;/FONT&gt;&lt;/SPAN&gt; gets output into the resulting HTML. If not true, nothing gets output. &lt;BR&gt;&lt;SPAN class=style2&gt;&lt;SPAN class=style1&gt;&lt;SPAN class=style5&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;&amp;lt;td&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=style3&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#a52a2a&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN class=style4&gt;&lt;FONT color=#a52a2a&gt;xsl:if test="&lt;SPAN class=style1&gt;&lt;SPAN class=style2&gt;&lt;SPAN class=style3&gt;@Units &amp;amp;gt;= '500'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;"&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000080&gt;&lt;SPAN class=style6&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=style1&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN class=style2&gt;&lt;SPAN class=style1&gt;&lt;SPAN class=style5&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;img src="Dc39.jpg" width="33" height="29" /&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN class=style3&gt;&lt;FONT color=#a52a2a&gt;&amp;lt;/xsl:if&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN class=style5&gt;&lt;FONT color=#000080&gt;&amp;lt;/td&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;For "apply formatting" CondF, the markup is only slightly more complicated. In this case, the &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:if&lt;/FONT&gt; &lt;/SPAN&gt;part remains the same - the only trickiness is that in tis case we want to affect an attribute (style on the parent &lt;FONT face="Courier New" color=#a52a2a size=2&gt;&amp;lt;td&amp;gt;&lt;/FONT&gt; container), not another tag. One does this by wrapping the &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:if&lt;/FONT&gt; &lt;/SPAN&gt;tag&lt;SPAN class=style4&gt; &lt;/SPAN&gt;with an&lt;FONT face="Courier New" color=#000080 size=2&gt; &lt;/FONT&gt;&lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:attribute&lt;/FONT&gt; &lt;/SPAN&gt;tag. Using the name attribute on the &lt;SPAN class=style4&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;xsl:attribute&lt;/FONT&gt; &lt;/SPAN&gt;tag, we can define which attribute the optional content gets added to. In this case, it's the "style" attribute. &lt;BR&gt;&lt;SPAN class=style2&gt;&lt;SPAN class=style1&gt;&lt;SPAN class=style5&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;&amp;lt;td&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=style3&gt;&lt;BR&gt;&lt;FONT face="Courier New" color=#a52a2a size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:attribute name="style"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:if test="@Units &amp;amp;gt;= '500'"&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=style5&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;background-color: #FFFF00;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#a52a2a&gt;&lt;SPAN class=style3&gt;&amp;lt;/xsl:if&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:attribute&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT color=#000080&gt;&lt;SPAN class=style5&gt;&amp;lt;/td&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN class=style3&gt;&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;That's pretty much all there is to Conditional Formatting. One of the nice things about understanding the markup is that you can exact "formatting" you desire. Next time, I'll show you how how you can do some more advanced conditional formatting by manually editing the XSLT. &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=604530" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Grokking "Show Visibility" in the Conditional Formatting Task Pane</title><link>http://blogs.msdn.com/b/alexma/archive/2006/02/10/603458.aspx</link><pubDate>Sat, 11 Feb 2006 05:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:603458</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=603458</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/02/10/603458.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;Sometimes true &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/Wysiwyg"&gt;&lt;FONT face=Arial size=2&gt;Wysiwyg&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; is not what you want in design view. For example, if you are using Conditional Formatting to optionally show content in your view, and your data is such that all records evaluate to false, you end up in a situation where you can no longer select the tag that holds the Conditional Formatting. To address this issue, we build a little feature into the Conditional Formatting task pane called "Set Visibility", which allows you to force the Conditional Formatting "on/off" states, regardless of what the "conditional" evaluates to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;The "Set Visibility" button has three options (note: these are only available if CondF is applied to the view): &lt;BR&gt;1) Default&lt;BR&gt;2) All formatting hidden&lt;BR&gt;3) All formatting visible&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;When we initially designed the feature, we had it so that "All formatting hidden" was the equivalent of forcing all "conditionals" to evaluate to false, and "All formatting visible" forced everything to evaluate to true. The problem we ran into with this design was that the resulting behavior was a little unexpected, e.g. "All formatting hidden" would cause every "Show Content" Conditional Formatting to disappear, since that's what happens when the conditionalal evaluates to&amp;nbsp;false. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Since we didn't think that was the user's expectation, we changed the design so that "All formatting hidden" showed the view as if no Conditional Formatting had been applied, which translates underneath the covers to forcing "Show Content" CondF's to evaluate to true, and "Hide Content/Apply Formatting" CondF's to evaluate to false. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;For the "All formatting visible" option, we left the design of that one alone - underneath the covers, it forces all conditionals to true, which means that the Show/Apply formatting are there for every row, and any content with a Hide on it, will be hidden for every row. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt; Here's a view with a "Show Content" Conditional Formatting on the image, and "Apply Formatting" CondF on the 2nd column background. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;EM&gt;Default view&lt;BR&gt;&lt;/EM&gt;&lt;IMG src="http://static.flickr.com/44/150800824_32af603a91_o.png"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Arial size=2&gt;All formatting hidden&lt;BR&gt;&lt;IMG src="http://static.flickr.com/46/150800823_ccb917b092_o.png"&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Arial size=2&gt;All formatting visible&lt;BR&gt;&lt;IMG src="http://static.flickr.com/48/150800822_e9ac439a79_o.png"&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Interestingly, in the way we implemented the feature, "Set Visibility" options are actually saved into your page, which means that if you preview that page in the browser with a "Set Visibility" command like "All formatting hidden" set, you'll actually see the same thing in browser that FrontPage showed in design view.&amp;nbsp;Arguably, a little weird :).&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=603458" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Conditional Formatting Part 2</title><link>http://blogs.msdn.com/b/alexma/archive/2006/01/20/602987.aspx</link><pubDate>Sat, 21 Jan 2006 07:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:602987</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=602987</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2006/01/20/602987.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;In addition to being able to show and hide content using Condition Formatting, you can also use the feature to dynamically change the presentation of your view, based on data in the associated data source.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt; for the view of the "Product Sales" list, let's say you want to highlight the background of any product who's "Units Sold" exeeds 500. &lt;BR&gt;&lt;BR&gt;The first step is to select the object you want the formatting to apply to. In this case, we need to choose the "Product" table cell:&lt;BR&gt;&lt;IMG src="http://static.flickr.com/54/150158961_fab6cc8c35_o.png"&gt;&lt;BR&gt;&lt;BR&gt;The easiest way to make this selection is to click the &amp;lt;td&amp;gt; tag in the "Quick Tag Selector", which is the bar at the top of design view showing the tag hierarchy for the current selection:&lt;BR&gt;&lt;IMG src="http://static.flickr.com/52/150158960_cb60c6917e_o.png"&gt;&lt;BR&gt;&lt;BR&gt;Once you have the cell selected, click Data/Cell Formatting to bring up the "Cell Formatting" task pane. From there, choose Create/Apply Formatting. This will bring up the "Condition Criteria" dialog, where you can define the condition under which the content should be formatted. For this scenario, we want to highlight the background when "Units Sold &amp;gt; 500":&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://static.flickr.com/51/150026422_28b4ca79d1_o.jpg"&gt; &lt;BR&gt;&lt;BR&gt;Once you have pressed ok in the "Condition Criteria" dialog, the formatting dialog will come up, allowing you to choose what formatting to apply. In this case, we want to set the background to yellow. &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://static.flickr.com/48/150158959_31da412374_o.png"&gt;&lt;BR&gt;&lt;BR&gt;That's all there is to it. Exit out of formatting, and your view will now reflect the formatting you have chosen: &lt;BR&gt;&lt;IMG src="http://static.flickr.com/45/150158962_7ad1bfa8af_o.png"&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=602987" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Data View Conditional Formatting</title><link>http://blogs.msdn.com/b/alexma/archive/2005/12/27/602854.aspx</link><pubDate>Wed, 28 Dec 2005 02:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:602854</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=602854</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/12/27/602854.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;One of the things XSLT makes really easy is "conditional formatting", i.e. having parts of your view appear differently depending on some data condition. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Quick example:&lt;/STRONG&gt; let's say you have a view of a "Product Sales" list, and you want to show a flag icon &lt;IMG height=14 src="http://static.flickr.com/53/150028307_7136e078d4_o.jpg" width=22&gt; beside any product that's sold more than 500 units. The first step is to add the flag image into the view, which will cause it to show up for every row:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=138 src="http://static.flickr.com/51/150026425_bee2fb3d24_o.png" width=490&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next, right click the flag image, and choose "Conditional Formatting". This will bring up the Conditional Formatting task pane. You can use this task pane to create new conditional formattings as well as manage existing ones.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG src="http://static.flickr.com/49/150026419_89133d8f1a_o.jpg"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Now click the "Create" button and choose "Show Content" - this will bring up the "Condition Criteria" dialog, where you will define the condition under which the content should be shown. For this scenario, we want to show the flag icon when "Units Sold &amp;gt; 500":&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG src="http://static.flickr.com/51/150026422_28b4ca79d1_o.jpg"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Press ok in the "Condition Criteria" dialog and you are done! You should now have a view where the flag icon only shows for products with greater than 500 units sold. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG src="http://static.flickr.com/54/150026420_aeda26128e_o.png"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;There are tons of cool ways to use this ability to conditionally show&amp;amp;hide content. One I use often is the "red light/green light" scenario - I put both a red light and green light icon in my, and define conditional formatting for both so that each row shows either a red light or a green light, giving a very quick very indication of whether an item is tracking to plan or not. Next up, I'll show how you can use conditional formatting to change the actual formatting of your view. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=602854" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Wysiwyg XSLT Editing</title><link>http://blogs.msdn.com/b/alexma/archive/2005/12/03/602422.aspx</link><pubDate>Sun, 04 Dec 2005 08:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:602422</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=602422</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/12/03/602422.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;We built the Data View on XSLT for a couple of important reasons: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;1) We wanted there to be a "real" programming language under the covers, so that our users would never be limited by what our UI allowed, i.e. even if FrontPage can't do something, you can always jump into code view and still solve the problem. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;2) The very nature of XSLT, being a &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/Declarative_programming"&gt;&lt;FONT face=Arial size=2&gt;declarative programming&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; language, made it possible for us to ship one of the richest design experiences out there for building data-driven views. In the most tools (at least any I've seen :&amp;gt;), the experience you have &lt;EM&gt;building&lt;/EM&gt; the view is very distinct from what you get &lt;EM&gt;using &lt;/EM&gt;at the view. At best, the design surface show you a very rough approximation (typically schematic) and any editing is done through intermediate tools, e.g. dialog boxes, code view, etc. With the Data View, thanks to the power of XSLT, we were able to deliver a no-compromises experience, where you always see the exact end product and editing works like you'd expect it to. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt; To highlight the difference between most view building tools and the Data View, let's compare what it's like building a simple view of the SQL &lt;EM&gt;Northwind&lt;/EM&gt; Products table using the Data View vs. the the ASP.net Grid View. Note: although I'm picking on the Grid View is this case, this comparison is valid for most app building tools out there. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Here's what the ASP.net Grid View looks like by default against the Northwind Products table:&lt;BR&gt;&lt;BR&gt;&lt;IMG height=160 src="http://static.flickr.com/46/149609263_63a5a3ec03_o.png" width=303&gt;&lt;BR&gt;As you can see, the Grid View uses sample data, not the real data, meaning the editing experience is different from what you get when you preview the page. You also can't &lt;EM&gt;directly&lt;/EM&gt; format the view, i.e. you can't click inside and start editing. If you want to change the way the view works, the Grid View supports some amount of formatting using the "Edit Fields" dialog, but if you want to do anything really fancy, you're in the world of templates or .net code. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Contract that experience with the same table in the Data View:&lt;BR&gt;&lt;IMG height=309 src="http://static.flickr.com/53/149609264_116de1c43e_o.png" width=670&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Not only do we show 'live data', but you can also directly format the presentation of your view just like regular page editing. E.g. in the picture above, I was able to make the first column bold simply by clicking inside and pressing the bold button.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;How it works: &lt;/STRONG&gt;In previous posts, I explained that XSLT allows you to take an XML document and transform it into an HTML presentation. The magic of the Data View is that it allows you to go in the opposite direction - FP shows you the "transformed" HTML in design view and makes it look editable, pretty much like a regular table. However, under the covers, instead of mapping edits to&amp;nbsp;html changes, your edits get translated by FrontPage into XSLT changes, which is what you'd see in code view. &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;E.g. in the above scenario, when I made the product name bold, FrontPage figured out what part of the XSLT defined the product name, and wrapped the tag (in this case, an &lt;SPAN class=style1&gt;&lt;FONT face="Courier New" color=#a52a2a&gt;&amp;lt;xsl: value-of&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt; ) with a &lt;SPAN class=style1&gt;&lt;FONT face="Courier New" color=#a52a2a&gt;&amp;lt;strong&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt; tag. Of course, you can also go the other direction, edit the in code view and have us reflect those changes in design view. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;This mapping of HTML edits to XSLT edits is what makes it possible for us to provide our great editing experience. And although the technical explanation is rather complicated (and frankly a bit above me :&amp;gt;), it's only possible with a declarative programming language like XSLT, where a program like FrontPage can truly "understand" how to read and write "code". One of these days, I'll interview one of our devs and get the "real" technical explanation for y'all :).&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=602422" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>How the Data View uses XSLT</title><link>http://blogs.msdn.com/b/alexma/archive/2005/11/15/588613.aspx</link><pubDate>Tue, 15 Nov 2005 23:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:588613</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=588613</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/11/15/588613.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;In my last post, I talked a little about XSLT - how it can be used to mix data from an XML file with HTML markup, thus producing a web page presentation for that data. This is fundamentally how the &lt;EM&gt;Data View &lt;/EM&gt;Web Part works. When the Data View executes within an ASPX page, it first fetches the data as XML, be it from SQL, a web service or a SharePoint list. That query is defined in the &lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;&amp;lt;dvwp:DataQuery&amp;gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt; section of the markup. Next, the Data View executes the embedded XSLT&amp;nbsp;markup (contained within &lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;&amp;lt;dvwp:XSL&amp;gt; &lt;FONT face=Arial color=#000000&gt;tag&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;) against that returned XML, which produces an HTML stream that is returned as the rendered output of the web part. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Of course, there are other server-side smarts built into the Data View, e.g. support for part to part connections, parameterization, etc, but the XSL transform is the heart of the of the feature. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next up: the real magic of the data view - wysiwyg XSLT generation in FrontPage. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=588613" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Quick and Dirty XSLT Primer</title><link>http://blogs.msdn.com/b/alexma/archive/2005/11/01/585451.aspx</link><pubDate>Tue, 01 Nov 2005 23:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:585451</guid><dc:creator>Alex Malek</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=585451</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/11/01/585451.aspx#comments</comments><description>&lt;FONT face=Arial size=2&gt;...From the Open Internet Lexicon: &lt;FONT color=#800080&gt;"A Transformation Language to convert XML/XSL documents into HTML suitable for a browser to display." &lt;/FONT&gt;Personally, &lt;/SPAN&gt;I like to think of it as language that sucks data from an XML file into an HTML file :).&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in"&gt;&lt;FONT face=Arial&gt;Here's a quick example that demonstrates how XSLT can be used in combination with HTML to build data-driven web pages. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial"&gt;&lt;B&gt;XSLT Example:&lt;/B&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: arial"&gt;Let's say we have an XML file with three records, each the name of a breakfast food, and we want to display that data on a web page.&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00"&gt;Here's our XML file:&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: black"&gt;&amp;lt;?xml version='1.0'?&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;lt;BREAKFAST-MENU&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: #8066a0"&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;lt;NAME&amp;gt;&lt;/SPAN&gt;Eggs&lt;/FONT&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&lt;FONT size=2&gt;&amp;lt;/NAME&amp;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;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: #8066a0"&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;lt;NAME&amp;gt;&lt;/SPAN&gt;French Toast&lt;/FONT&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&lt;FONT size=2&gt;&amp;lt;/NAME&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: #8066a0"&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;lt;NAME&amp;gt;&lt;/SPAN&gt;Waffles&lt;/FONT&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&lt;FONT size=2&gt;&amp;lt;/NAME&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/FOOD&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="COLOR: #8066a0"&gt;&amp;lt;/BREAKFAST-MENU&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00"&gt;Here's what we want on the web page:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE id=table1 cellSpacing=0 cellPadding=2 width=100 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: arial" align=center&gt;&lt;U&gt;Breakfast Menu&lt;/U&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: arial" align=left&gt;Eggs&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: arial" align=left&gt;French Toast&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: arial" align=left&gt;Waffles&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="BACKGROUND: yellow; COLOR: black"&gt;Using this XSLT (with inline HTML), we'll get the right HTML:&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;table border="1" width="100%" cellpadding="2"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;tr valign="top"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;th nowrap="true"&amp;gt;&amp;lt;u&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;Breakfast Menu&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;u&amp;gt;&amp;lt;/th&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&amp;lt;xsl:for-each select="/BREAKFAST-MENU/FOOD"&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;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;lt;td&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&amp;lt;xsl:value-of select="NAME"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;/td&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;/table&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-POSITION: 0% 0%; BACKGROUND-COLOR: #ffff00"&gt;&lt;FONT face=Arial size=2&gt;The final&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="BACKGROUND: yellow; COLOR: black"&gt; HTML (after the XSLT is processed):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&lt;BR&gt;&amp;lt;table border="1" width="100%" cellpadding="2"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr valign="top"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th nowrap="true"&amp;gt;&amp;lt;u&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;Breakfast Menu&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;u&amp;gt;&amp;lt;/th&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;Eggs&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;/td&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;French Toast&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;/td&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;Waffles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8066a0; FONT-FAMILY: Consolas"&gt;&amp;lt;/td&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;BR&gt;&amp;lt;/table&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;B&gt;How it works:&lt;/B&gt;&lt;BR&gt;When the XSL is processed, commands that begin with &lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&lt;FONT face="Courier New"&gt;&amp;lt;xsl:&amp;gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;get treated like programming commands. The&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&lt;FONT face="Courier New"&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;"&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;for-each&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;" statement causes the markup contained within the for-each to be processed once for each item that is returned by the &lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&lt;FONT face="Courier New"&gt;select="/BREAKFAST-MENU/FOOD" &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;&lt;FONT face=Arial&gt;command, which is this case returns the three food records. The &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;&amp;lt;xsl:value-of select="NAME"/&amp;gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;&lt;FONT face=Arial&gt;command is what sucks the actual data from the XML file into the HTML. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #c0504d; FONT-FAMILY: Consolas"&gt;xsl:value-of &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;&lt;FONT face=Arial&gt;food your best friend when it comes to understanding XSLT and particularly XSLT generated by FrontPage. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;Next up: How the Data View uses XSLT. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=585451" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/alexma/archive/tags/SharePoint+App_2D00_Building+Tips/">SharePoint App-Building Tips</category></item><item><title>Data View formatting: controlling the presentation of your data using 'Format Item As...'</title><link>http://blogs.msdn.com/b/alexma/archive/2005/10/07/478416.aspx</link><pubDate>Sat, 08 Oct 2005 02:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478416</guid><dc:creator>Alex Malek</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=478416</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/10/07/478416.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;Beyond look and feel, there is lots of other formatting support in the Data View. One of the most important is that you can easily change the way the Data View interprets data for presentation, i.e. for fields such as dates, hyperlinks, rich text, numbers, etc, you can tell the Data View exactly how you would like that data represented on the page. For example, let's say you have a number field in your data source - in your view, you might want that number formatted as British Pound currency. Using the 'Format Item As...' feature, you can easily do this. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;B&gt;a quick example: &lt;BR&gt;&lt;/B&gt;In this Data View, I have a 'created date' column. The data itself stores both the date and time for each record. However, in my view, I just want the date to show up... &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=128 src="http://static.flickr.com/31/50307439_56f0d1d6ae_o.png" width=528 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;I can easily make this presentation change by right-clicking any row Created column, and choosing the 'Format Item as -&amp;gt; Date &amp;amp; Time...' menu. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=232 src="http://static.flickr.com/26/50307440_4334d7867e_o.png" width=623 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Clicking 'Format as Date &amp;amp; Time' will bring up a nifty little dialog we have which gives you the option to hide either the date or time. You can also change how either the date or time is represented. For example, you can change the date to be shown with the year first. For our little demo, we'll just uncheck 'show time' ...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=286 src="http://static.flickr.com/28/50307441_5b9a0d2ae3_o.png" width=538 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Press ok and voila! As you can see, the time is now gone from the view. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=126 src="http://static.flickr.com/32/50307442_b86f8d2573_o.png" width=526 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;In addition to being accessible via the field's context menu, you can also get at it from the top-level 'Data' menu. The feature works against all kinds of different field types - it's worth messing around with :). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Coming up, I'll dig a little into how the data view works (hint: it's built on standard XSLT technology) and how you can use that knowledge to your advantage!&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=478416" width="1" height="1"&gt;</description></item><item><title>Data View formatting: the basics</title><link>http://blogs.msdn.com/b/alexma/archive/2005/10/06/478084.aspx</link><pubDate>Fri, 07 Oct 2005 05:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478084</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=478084</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/10/06/478084.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;I'm very happy to say that formatting a Data View works exactly the way you'd expect/want - you simply select the field you want to format, use the HTML formatting toolbar and voila: 'it just works'. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;a&amp;nbsp;quick example: &lt;BR&gt;&lt;/STRONG&gt;let's say you wanted to highlight the Title field in yellow. First you would select that field in the Data View. You can see in the image below that the design surface gives you some visual feedback (the orangish selection of "Test2", 3 and 4) that any formatting you do will affect every record of your data source.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=131 src="http://static.flickr.com/24/50106666_f1465dc961_o.png" width=528 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next, you would use the highlighter button in the toolbar:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=126 src="http://static.flickr.com/29/50106665_1b0e51737e_o.png" width=158 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;That's it, that's all. You're title field is now highlighted yellow. And of course it's all data-driven, any new records added to this data source would get their Title field highlighted as well. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=122 src="http://static.flickr.com/25/50106667_158ecb4956_o.png" width=523 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;On first blush, this seems kinda obivous - I mean, how else would it work?? :) That's what makes the Data View so cool (imho), it allows one to create data-driven web pages exactly the way you'd expect to. Most other tools I've seen for creating 'views' of data, be it for client or server apps, have one work with a less intuitive, less wysiwyg experience.&amp;nbsp;Typically, one doesn't&amp;nbsp;get 'live' data in the design surface, nor is the formatting so direct. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next up I'll show you some more interesting formatting you can do to the way the data itself is presented. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=478084" width="1" height="1"&gt;</description></item><item><title>creating your first Data View</title><link>http://blogs.msdn.com/b/alexma/archive/2005/10/03/476457.aspx</link><pubDate>Mon, 03 Oct 2005 18:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:476457</guid><dc:creator>Alex Malek</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=476457</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/10/03/476457.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;Now that &lt;a href="http://blogs.msdn.com/alexma/archive/2005/09/29/476314.aspx"&gt;I've introduced&lt;/A&gt; the Data View web part, I'd like to give you a quick demo of how easy it is to add one of these data-driven views to a web page... &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;-&amp;gt; The main entry point for creating Data Views is the top-level menu called Data, which is a new menu to FP 2003. Nearly all of the Data View's functionality can be accessed via the Data menu - you'll definitely want to hunt and peck in there when you have some time. For our demo today, we want to insert a Data View from scratch, which one does by&amp;nbsp;clicking Data/Insert Data View:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=206 src="http://static.flickr.com/25/49022522_46eed80af4_o.png" width=222 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;&lt;B&gt;Step 1: Configure a data source&lt;BR&gt;&lt;/B&gt;After clicking Data/Insert Data View, FrontPage will bring up a task pane called the 'Data Source Catalog' or DSC for short. As the name implies, you can use the Data Source Catalog&amp;nbsp; to manage and configure all of your data sources. Now, it may seem a bit weird that 'Insert Data View' brings up a task pane for managing data sources, but the reason is that you first need to configure a data source to work with and that's what the DSC is all about.&amp;nbsp; As you can see from the screenshot, the DSC supports many data source types: SharePoint lists, database servers (SQL, DB2, Oracle), XML files (both remote and local to the site), server url's and web services. The catalog is also pretty smart - it dynamically discovers any SharePoint lists or XML files in the site and aadds them to the proper category. Since the 'Announcements' list is already configured and ready to use, we'll work with this source for our demo. Note: It does gets a smidge harder when working with 'external' data sources such as web services, but nothing too crazy :)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=388 src="http://static.flickr.com/30/49022524_09b66ddba6_o.png" width=240 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;B&gt;Step 2: Select the data source&lt;BR&gt;&lt;/B&gt;Once you have chosen a data source to work with and are ready to create a view, you can click that data source in the task pane and choose the 'Show Data' menu item. That will cause FP will navigate to another task pane called 'Data View Details' or DVD for short. The DVD is a really nifty piece of UI that will become your home for working with Data Views. Not only can you create and format Data Views from the DVD, but it also allows you to browse the records in your data set, as well as filter/sort that data. &lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE id=table1 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=386 src="http://static.flickr.com/25/49022526_a2205c1558_o.png" width=240 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;FONT face=Arial size=2&gt;Clicking 'Show Data' -&amp;gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp; &lt;IMG height=379 src="http://static.flickr.com/31/49022528_481aed0ff1_o.png" width=240 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;B&gt;Step 3: Create your Data View&lt;BR&gt;&lt;/B&gt;When you are ready to add a Data View to you page, simply select the fields you want&amp;nbsp;to be in your view and press the 'Insert Data view' link. FrontPage will then insert a new Data View at the current cursor location in your page. And that's all there is to creating a Data View! :)&amp;nbsp;Once you have a Data View in your page, you can now format it using the regular FrontPage formatting tools.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;A href="http://static.flickr.com/29/49022529_236b473a4b_o.png"&gt;&lt;IMG height=421 src="http://static.flickr.com/29/49022529_236b473a4b.jpg" width=500 border=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;In summary:&lt;BR&gt;- the Data menu is your friend for creating data-driven web pages&lt;BR&gt;- the 'Data Source Catalog' (DSC) is the place to manage all of your data connections&lt;BR&gt;- using the 'Data View Details' (DVD) task pane, you can add Data Views to your page (as well as browse data sources)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Next up: Formatting your Data View &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=476457" width="1" height="1"&gt;</description></item><item><title>a story of data and views</title><link>http://blogs.msdn.com/b/alexma/archive/2005/09/29/476314.aspx</link><pubDate>Fri, 30 Sep 2005 06:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:476314</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=476314</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/09/29/476314.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;As I mentioned previously, my main area of focus on FrontPage is features that help users build applications for SharePoint. The cornerstone of our app creation experience in FP 2003 is a little thing we call the ‘Data View’ web part. You can think of the Data View as a Swiss army knife for creating data driven web pages, i.e. web pages with a ‘view’ of some stored data. The Data View allows you, without writing any code, to create views against nearly any data source - it supports SQL, xml files, web services and of course, SharePoint list data. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Here's a simple example of a page with a Data View on it. In this case, I used the Customers table from the SQL Northwind sample database:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://static.flickr.com/32/48871889_49aa8af173_o.png"&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=426 src="http://static.flickr.com/32/48871889_49aa8af173.jpg" width=500 border=0&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;One of the great things about the Data View is that the editing experience is completely wysiwyg, e.g. I was able to format the 'Company Name' column blue just by selecting the cell and pressing the Font Color dropdown. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;There is tons more to the Data View - much of this blog (at least initially) will focus on its cool ins and outs. Next up, I'll run you through how I created the above view. &lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=476314" width="1" height="1"&gt;</description></item><item><title>list editing gone wild</title><link>http://blogs.msdn.com/b/alexma/archive/2005/09/26/474255.aspx</link><pubDate>Tue, 27 Sep 2005 07:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:474255</guid><dc:creator>Alex Malek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/alexma/rsscomments.aspx?WeblogPostID=474255</wfw:commentRss><comments>http://blogs.msdn.com/b/alexma/archive/2005/09/26/474255.aspx#comments</comments><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;In my last post, I mentioned the neato ‘Datasheet’ view that comes with SharePoint. I'm sure this is old hat to many of you out there, but on the off chance you haven't played with it, the Datasheet is definitely worth checking out. In a nutshell, the Datasheet is a special view that lets you do bulk editing of SharePoint list content. It's a great tool to have in your arsenal when you are building apps on SharePoint. You can get to the Datasheet by clicking the 'Edit in Datasheet' button that's on the detail view for most lists - you can also create a new Datasheet view via the list's view creation UI. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;When you click the 'edit in Datasheet' button, you get a page that looks like this. Using the Datasheet grid control in the center, you can quickly add, edit or delete content. I use this view all the time when I need to quickly get a lot of data into one of the lists I'm building an application around. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=521 src="http://static.flickr.com/31/46971876_f8875ce316_o.png" width=676 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=474255" width="1" height="1"&gt;</description></item></channel></rss>
