<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SUPERNOVA &#187; tips &amp; tricks</title>
	<atom:link href="http://blog.metrostarsystems.com/tag/tips-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.metrostarsystems.com</link>
	<description>Stellar Social Media &#38; Technology Solutions</description>
	<lastBuildDate>Sat, 04 Feb 2012 13:59:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Jenny&#8217;s SharePoint Tip:  Rollup items across a site collection by creating a cross list data view web part.</title>
		<link>http://blog.metrostarsystems.com/2011/10/03/jennys-sharepoint-tip-rollup-items-across-a-site-collection-by-creating-a-cross-list-data-view-web-part/</link>
		<comments>http://blog.metrostarsystems.com/2011/10/03/jennys-sharepoint-tip-rollup-items-across-a-site-collection-by-creating-a-cross-list-data-view-web-part/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 20:55:21 +0000</pubDate>
		<dc:creator>Jennifer Hersko</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[content rollup]]></category>
		<category><![CDATA[Data View Web Part]]></category>
		<category><![CDATA[DVWP]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=5402</guid>
		<description><![CDATA[While working on a client project I had a request to rollup all  calendar items across a single site collection on the home page of the root site.  After reviewing several blogs describing how to create a cross list data view web part (dvwp) I was able to successfully create a solution per the client<em> ... </em>]]></description>
			<content:encoded><![CDATA[<p>While working on a client project I had a request to rollup all  calendar items across a single site collection on the home page of the root site.  After reviewing <em>several </em>blogs describing how to create a cross list data view web part (dvwp) I was able to successfully create a solution per the client request.  This blog provides step-by-step instructions for creating your own cross list dvwp.  </p>
<p>The below example creates a cross list dvwp that displays <em>all</em> calendar items <em>from across a site collection</em> on a web page or site.  After the cross list dvwp is created, any new sub site with a calendar list will have its entries compiled in the cross list dvwp. </p>
<p><strong><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp1.png" alt="" width="642" height="150" /></strong></p>
<p><strong style="font-size: 16px;">Things to know prior to starting  </strong></p>
<p><strong style="font-size: 12px;">List Server Template <br />
</strong>You need to know the list server template number for the list type you will querying for this solution.  I.e. A calendar list’s server template number is 106.  Each list type in SharePoint has a number associated with it and this number is required to create a cross list query.   For a listing of list types and their corresponding numbers,  visit this MSDN page: <a href="http://msdn.microsoft.com/en-us/library/dd340479(v=prot.13).aspx">http://msdn.microsoft.com/en-us/library/dd340479(v=prot.13).aspx</a></p>
<p><strong style="font-size: 12px;">Static/Internal Name versus Display Name for Columns<br />
</strong>Most often columns have two names; an internal name and a display name.  I.e. In a calendar list the <strong>Start Time</strong> column has an internal name of <strong>EventDate</strong>.  When creating a cross list query the internal names are required.  For more information on internal vs. display names, read this blog by Marc Anderson:  <a href="http://sympmarc.com/2009/12/11/staticname-versus-displayname-on-sharepoint-lists/">http://sympmarc.com/2009/12/11/staticname-versus-displayname-on-sharepoint-lists/</a> </p>
<p><strong style="font-size: 16px;">Keep in Mind</strong></p>
<p>There are pros and cons associated with using a cross list dvwp rather than purchasing a more robust 3rd party tool. <img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp2.png" alt="" width="702" height="127" /></p>
<p> <strong style="font-size: 16px;">Create a cross list query       </strong></p>
<p><strong> 1.</strong>  In the <strong>browser</strong>, add a list view web part to a web part page or a site page. <br />
 <img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp3.png" alt="" width="547" height="89" /></p>
<p><strong> 2.</strong>  Format the view – include all columns and in the order they should appear in the final product.<br />
<img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp4.png" alt="" width="485" height="208" /></p>
<p><strong> 3.</strong>  Open <strong>SharePoint Designer</strong>.  Navigate to the web page or site where the list web part was added and view in <strong>Split</strong> mode.<br />
<img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp5.png" alt="" width="223" height="91" /></p>
<p><strong>4. </strong> Convert the list view web part to a data view web part.  <strong>Right-click</strong> on the list view web part and choose <strong>Convert to XSLT Data View</strong>.<br />
<img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp6.png" alt="" width="311" height="227" /></p>
<p><strong> 5.</strong>  The dvwp needs to know <em>where</em> to query.  From the tool bar, choose <strong>Edit</strong>, then <strong>Find</strong>.</p>
<p style="padding-left: 30px;"><strong>a.    </strong>Search for <strong>&lt;ParameterBindings&gt;</strong> </p>
<p style="padding-left: 60px;"><em>After</em> the open &lt;ParameterBindings&gt; tag, add the following parameter binding to the list using <em>your</em> <strong>site/sub site</strong> information (<strong>NOTE:</strong>  your site information may be /site/, or /site/subsite/, or, /site/sub site/sub sub site/, etc.): </p>
<p style="padding-left: 60px;">&lt;parameterbinding Name=&#8221;WebURL&#8221; Location=&#8221;None&#8221; DefaultValue=&#8221;<strong>/site/subsite/</strong>&#8220;/&gt; </p>
<p style="padding-left: 30px;"><strong>b.  </strong>Search for <strong>&lt;xsl:param</strong> </p>
<p style="padding-left: 60px;">Above the first entry, add the following using <em>your</em> <strong>site/sub site</strong> information: </p>
<p style="padding-left: 60px;">&lt;xsl:param name=&#8221;WebURL&#8221;&gt;/site/subsite/&lt;/xsl:param&gt; </p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp7.png" alt="" width="284" height="321" />  </p>
<p><strong>6. </strong>  This section tells the query <em>what</em> columns to match and display.</p>
<p style="padding-left: 30px;"><strong>a. </strong> Search for <strong>&lt;DataSources&gt;</strong></p>
<p style="padding-left: 30px;"><strong>b. </strong> In the <strong>code pane</strong> in Designer, between the open &lt;DataSources&gt; and closing &lt;/DataSources&gt; tags, look for the id=&#8221;[id_name_here]&#8220;.  <strong>Copy the existing id name</strong> and save it somewhere.  You will need this information in <em>step 6d</em>.<br />
<img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp8.png" alt="" width="324" height="111" /></p>
<p style="padding-left: 30px;"><strong>c. </strong> In the code pane<strong>, delete</strong> the following code:  <strong><em>open</em> &lt;DataSources&gt;</strong> tag to the <strong><em>closing</em> &lt;/DeleteParameters&gt;</strong> tag and <em>all</em> code between. <span style="text-decoration: underline;">This should leave you with the open &lt;SelectParameters&gt; tag to the closing &lt;/DataSources&gt; tag</span>. </p>
<p style="padding-left: 30px;"><em><strong>d. </strong>Above</em> the open &lt;SelectParameters&gt; tag<strong> copy and paste</strong> the below open &lt;DataSources&gt; tag and following code and <em>modify</em> the items highlighted in yellow to match your list needs.</p>
<p style="padding-left: 60px;">&lt;DataSources&gt;&lt;SharePoint:SPDataSource runat=&#8221;server&#8221; DataSourceMode=&#8221;<span style="color: #ff0000;">Cross</span>List&#8221; SelectCommand=&#8221;&lt;View&gt;&lt;Webs Scope=&#8217;Recursive&#8217;&gt;&lt;/Webs&gt;&lt;Lists ServerTemplate=&#8217;<span style="background-color: yellow;">106</span>&#8216;&gt;&lt;/Lists&gt;&lt;ViewFields&gt;&lt;FieldRef Name=&#8217;<span style="color: #ff0000;">FileDirRef</span>&#8216;/&gt;&lt;FieldRef Name=&#8217;<span style="color: #ff0000;">ID</span>&#8216;/&gt;&lt;FieldRef Name=&#8217;<span style="background-color: yellow;">Location</span>&#8216;/&gt;&lt;FieldRef Name=&#8217;<span style="background-color: yellow;">Title</span>&#8216;/&gt;&lt;FieldRef Name=&#8217;<span style="background-color: yellow;">EventDate</span>&#8216;/&gt;&lt;FieldRef Name=&#8217;<span style="background-color: yellow;">EndDate</span>&#8216;/&gt;&lt;<span style="color: #ff0000;">ProjectProperty Name=&#8217;Title</span>&#8216;/&gt;&lt;/ViewFields&gt;&lt;Query&gt;&lt;/Query&gt;&lt;/View&gt;&#8221; UseInternalName=&#8221;True&#8221; id=&#8221;<span style="background-color: yellow;">datasource2</span>&#8220;&gt;</p>
<p style="padding-left: 60px;"><strong>CODE OVERVIEW </strong> </p>
<p style="padding-left: 60px;"><span style="background-color: yellow;">Highlighted text</span> – readers of this blog should replace highlighted text with values that correspond to their solution.  <br />
***I.e. If your cross list is NOT querying calendar lists, then the list server template of 106 should be replaced with the correct value.<br />
***The &lt;FieldRef Name&gt; tags tell the data view what columns to display.  If a column should appear in the dvwp, be sorted on, or filtered on, the column name MUST have a &lt;FieldRef Name&gt; tag.  NOTE:  You can have as many or few &lt;FieldRef Name&gt; tags as necessary.  </p>
<p style="padding-left: 60px;"><span style="color: #ff0000;">Text in red</span> should not be deleted. <br />
***The <strong>Cross</strong> added in the <strong>DataSourceMode</strong> is the key to searching across the site collection for items of the same list server type. <br />
***The <strong>FileDirRef</strong> reference identifies information about the file directory.  Do no delete this FieldRef.<br />
***The <strong>ProjectProperty Name=”Title/”</strong> reference populates the site name the list item is popultating from.  Do not delete this reference if you want to note what site the item in your query is pulling from. </p>
<p>Click anywhere in the <strong>design pane</strong> of Designer.  The dvwp should now contain  items from across the site collection that are saved to lists using the list server template you defined in step 6d.<br />
  <img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp9.png" alt="" width="646" height="192" /> </p>
<p><strong>7.</strong>  The Title field <span style="text-decoration: underline;">does not </span>link to item display forms.  To enable this functionality, search for <strong>select=&#8221;@Title&#8221;</strong> and locate the reference inside of a <strong>&lt;xsl:value-of  </strong>tag.</p>
<p style="padding-left: 30px;"><strong>a. </strong> The xsl:value-of tag that contains the <strong>@Title</strong> will reside inside of an &lt;a&gt; tag – delete the open &lt;a&gt; and closing &lt;/a&gt; tags and <em>all</em> code inside of it. </p>
<p style="padding-left: 30px;"><strong>b.</strong>  Replace the text with the following: </p>
<p style="padding-left: 60px;">&lt;a&gt;&lt;xsl:attribute name=&#8221;href&#8221;&gt;/&lt;xsl:value-of select=&#8221;substring-after(@FileDirRef,&#8217;;#&#8217;)&#8221; /&gt;/Dispform.aspx?ID=&lt;xsl:value-of select=&#8221;@ID&#8221; /&gt;&lt;/xsl:attribute&gt;&lt;xsl:value-of select=&#8221;@Title&#8221; /&gt;&lt;/a&gt;</p>
<p><strong>8. </strong> To add the site name where each item resides, <strong>Right-click</strong> the dvwp and choose <strong>Show Common Control Tasks</strong>, choose <strong>Edit Columns</strong>, then select <strong>ProjectProperty.Title</strong> and hit the <strong>Add</strong> button to display that column in the dvwp.  After the column is added, in the code pane, edit the column header to read as <strong>Site</strong>. </p>
<p> <img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp10.png" alt="" width="355" height="187" /></p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp11.png" alt="" width="283" height="151" /></p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/dvwp12.png" alt="" width="521" height="340" /> </p>
<p><strong> </strong><strong>NOTE:</strong> My example does not contain any name columns, but if it did…  Columns that display names will contain extra characters (D’oh!).  To correct this, edit the xsl command containing the column name (thanks to <a href="http://blog.metrostarsystems.com/author/lee-kohn/">Lee Kohnn</a> for helping me with this one).  Columns that display names include but are not limited to: AssignedTo, Requestor, Author, Editor. </p>
<p>Search for <strong>select=”@[Column Internal Name]”</strong> and locate the reference inside of a <strong>&lt;xsl:value-of</strong> tag. </p>
<p style="padding-left: 30px;">a.  Replace the existing xsl with the following: </p>
<p style="padding-left: 60px;">&lt;xsl:value-of select=&#8221;substring-after(@[Column Internal Name],&#8217;;#&#8217;)&#8221; /&gt; </p>
<p style="font-size: 16px;"><strong>The finished product</strong></p>
<p>Voila, my cross list dvwp!  As new sub sites are added, any calendar list that contains items will automatically populate in my dvwp.  As items and/or sub sites are deleted, my dvwp will automatically update by removing those items.<br />
<img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/10/final.png" alt="" width="575" height="175" /></p>
<p><strong style="font-size: 16px;">Links</strong></p>
<p>Here are some useful blogs I read to help unravel this solution for myself:</p>
<ul>
<li><a href="http://platinumdogs.wordpress.com/2009/07/21/querying-document-libraries-or-pulling-teeth-with-caml/">http://platinumdogs.wordpress.com/2009/07/21/querying-document-libraries-or-pulling-teeth-with-caml/</a></li>
<li><a href="http://sympmarc.com/2009/04/21/displaying-columns-in-a-crosslist-dvwp/">http://sympmarc.com/2009/04/21/displaying-columns-in-a-crosslist-dvwp/</a></li>
<li><a href="http://www.manliane.com/kb/157/">http://www.manliane.com/kb/157/</a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2011/10/03/jennys-sharepoint-tip-rollup-items-across-a-site-collection-by-creating-a-cross-list-data-view-web-part/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jenny’s SharePoint Tip:  How to display “This Month” birthdays in a list using an XSLT filter</title>
		<link>http://blog.metrostarsystems.com/2011/09/30/display-this-month-birthdays-in-a-sharepoint-list/</link>
		<comments>http://blog.metrostarsystems.com/2011/09/30/display-this-month-birthdays-in-a-sharepoint-list/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 20:16:27 +0000</pubDate>
		<dc:creator>Jennifer Hersko</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=5309</guid>
		<description><![CDATA[Anyone who has ever worked with SharePoint knows that creating filters on date values is not as straight forward as one would expect.  This example explains how to compile employee birthdays in a custom list that automatically displays only the current month’s birthdays.  With a few calculated columns, a data view, and minor XSLT this is easy to<em> ... </em>]]></description>
			<content:encoded><![CDATA[<p>Anyone who has ever worked with SharePoint knows that creating filters on date values is not as straight forward as one would expect.  This example explains how to compile employee birthdays in a custom list that automatically displays only the current month’s birthdays.  With a few calculated columns, a data view, and minor XSLT this is easy to accomplish.</p>
<p>Figure 1 displays a screenshot my configured Birthdays list which displays only <em>current</em> month birthday entries on the home page of my site.  To create your own list that filters by current month follow the below steps. <img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/figure1.png" alt="" width="519" height="136" /></p>
<p><strong style="font-size: 16px;"><br />
Getting Started &#8211; List Configuration </strong>(These steps are completed in the browser.)</p>
<p>1. Create a <strong>custom list</strong> and name it <strong>Birthdays</strong>.</p>
<p>2. Create the following columns:</p>
<p style="padding-left: 30px;">Column 1)  Birthday (birthday)  /  Date and Time  /  Field is Optional</p>
<p style="padding-left: 30px;">Column 2)  Birthday Month (birthdaymonth) / Calculated Column / Field is Hidden</p>
<p style="padding-left: 60px;">=CHOOSE(MONTH(Birthday),&#8221;January&#8221;,&#8221;February&#8221;,&#8221;March&#8221;,&#8221;April&#8221;,&#8221;May&#8221;,&#8221;June&#8221;,&#8221;July&#8221;,&#8221;August&#8221;,&#8221;September&#8221;,<br />
&#8220;October&#8221;,&#8221;November&#8221;,&#8221;December&#8221;)</p>
<p style="padding-left: 30px;">Column 3)  Day (day) / Calculated Column / Field is Hidden</p>
<p style="padding-left: 60px;">=&#8221;"&amp;DAY(Birthday)</p>
<p style="padding-left: 30px;">Column 4)  Employee (Title) / Single line of text / Field is Optional</p>
<p style="padding-left: 30px;">Column 5)  Month (month) / Calculated Column / Field is Hidden</p>
<p style="padding-left: 60px;">=CHOOSE(MONTH(Birthday),&#8221;01&#8243;,&#8221;02&#8243;,&#8221;03&#8243;,&#8221;04&#8243;,&#8221;05&#8243;,&#8221;06&#8243;,&#8221;07&#8243;,&#8221;08&#8243;,&#8221;09&#8243;,&#8221;10&#8243;,&#8221;11&#8243;,&#8221;12&#8243;)</p>
<p style="padding-left: 30px;">Your column settings should display as in <strong>Figure 2</strong> so that users <span style="text-decoration: underline;">do not</span> see the hidden fields when a new birthday item is created.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/2.png" alt="" width="366" height="180" /></p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/figure3.png" alt="" width="543" height="136" /></p>
<p>3.  Create a view in the Birthdays list and name it <strong>currentbirthdays</strong>.  Columns to display are:<br />
1- Birthday Month, 2- Day (ascending), and 3- Month (ascending).</p>
<p><strong style="font-size: 16px;"><br />
Birthday list content and configuration </strong></p>
<p>Before proceeding to the <strong>Final Stretch</strong> section ensure your list contains the following:</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/4.png" alt="" width="504" height="150" /></p>
<p><strong style="font-size: 16px;"><br />
Final Stretch &#8211; XSLT filtering in SharePoint Designer 2007</strong></p>
<p>An XSLT filter is used to display only current month birthdays.  The XSLT expression uses the hidden <strong>Month</strong> column to compare the <strong>Birthday Month</strong> column to [Today’s] month.</p>
<p><strong>NOTE</strong>: In SharePoint 2007 a list must be converted to a data view web part, while in SharePoint 2010 <em>all</em> lists are data view web parts. Due to this difference, the below screenshots taken from 2007 will differ from 2010; the general process for creating XSLT filters is the same.</p>
<p>4.  Open SharePoint Designer.  Navigate to the Birthdays list and <strong>double-click</strong> the <strong>currentbirthdays.aspx</strong> page to open it.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/5.png" alt="" width="224" height="145" /></p>
<p>5.  <strong>Right-click</strong> and convert the list to an <strong>XSLT Data View</strong>.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/6.png" alt="" width="205" height="141" /></p>
<p>6.  <strong>Right-click</strong> the data view web part and choose <strong>Show Common Control Tasks</strong>.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/7.png" alt="" width="269" height="155" /></p>
<p>7.  Choose <strong>Filter</strong>.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/8.png" alt="" width="291" height="122" /></p>
<p>8.  Check the <strong>Add the XSLT Filtering</strong> option and choose <strong>Edit</strong>.  The <strong>Advanced Condition</strong> dialogue box opens.</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/9.png" alt="" width="330" height="230" /></p>
<p>9.  In the <strong>Edit the XPath Expression</strong> field input the following XSLT and then click OK:<br />
[@Month=number(ddwrt:FormatDateTime(string(ddwrt:Today()),1033,'MM'))]</p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/09/10.png" alt="" width="484" height="367" /></p>
<p>10.  Select <strong>Ok</strong> to close the <strong>Advanced Condition</strong> dialogue box.</p>
<p>11.  Close Designer.  If prompted to Save or Check-in, do so.</p>
<p><strong>NOTE:</strong>  After adding the list as a web part to a page or site, it <em>may be necessary</em> to repeat steps 4 – 11.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2011/09/30/display-this-month-birthdays-in-a-sharepoint-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight Caching Data Requests</title>
		<link>http://blog.metrostarsystems.com/2011/03/26/silverlight-caching-data-requests-2/</link>
		<comments>http://blog.metrostarsystems.com/2011/03/26/silverlight-caching-data-requests-2/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 14:57:46 +0000</pubDate>
		<dc:creator>Jorge "El Che" Vasquez</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[tips & tricks]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/2011/03/26/silverlight-caching-data-requests-2/</guid>
		<description><![CDATA[SilverLight is a great presentation display. However, when it works perfectly on ALL Browsers, with exception of Internet Explorer, it become very comical. Background We developed a SilverLight display which uses &#8220;WebClient&#8221; class to query an RSS feed asynchronously: WebClient proxy = new WebClient(); proxy.OpenReadCompleted += new OpenReadCompletedEventHandler(OnReadCompleted); Once the callback event is triggered by<em> ... </em>]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Georgia; font-size: 10pt;">SilverLight is a great presentation display. However, when it works perfectly on ALL Browsers, with exception of Internet Explorer, it become very comical.<br />
</span></p>
<p><span style="font-family: Georgia; font-size: 10pt;"><span style="text-decoration: underline;"><strong>Background</strong></span><br />
We developed a SilverLight display which uses &#8220;WebClient&#8221; class to query an RSS feed asynchronously:<br />
</span></p>
<p><span style="font-size: 10pt;"><span style="color: #2b91af; font-family: Consolas;">WebClient</span><span style="font-family: Consolas;"> proxy = <span style="color: blue;">new</span><br />
<span style="color: #2b91af;">WebClient</span>();<br />
proxy.OpenReadCompleted += <span style="color: blue;">new Op<span style="color: #2b91af;">enReadCompletedEventHandler</span>(OnReadCompleted);</span></span><span style="font-family: Georgia;"><br />
</span></span></p>
<p><span style="font-family: Georgia; font-size: 10pt;">Once the callback event is triggered by a timer event, we have logic to iterate through the results.<br />
</span></p>
<p><span style="font-family: Georgia; font-size: 10pt;"><span style="text-decoration: underline;"><strong>Problem</strong></span><br />
The data returned by the proxy seemed to be cached, since we keep on getting the same data. I looked around trying to figure out why this would happen. The RSS Feed that we were querying was being updated properly. What could cause the caching? Is it the way I am quering? Is it SilverLight acting up?<br />
</span></p>
<p><span style="font-family: Georgia; font-size: 10pt;"><span style="text-decoration: underline;"><strong>Solution</strong></span><br />
As I started to Google (sad to say that I did not Binged), I coworker came to mind. He would reminding me about FireBug (Dev Tool within FireFox) and how awesome it is. Hence, I decided to use the Developer Tools on IE:<br />
</span></p>
<p><span style="font-family: Georgia; font-size: 10pt;">Why is the browser returning 304?<br />
</span></p>
<p><img src="http://blog.metrostarsystems.com/wp-content/uploads/2011/03/032611_1457_Silverlight1.png" alt="" /></p>
<p>The first time we hit the server, it returns 200 (OK).</p>
<p>However, every other call to the server, it would returns 304.<br />
<strong><em>Definition of 304<br />
</em></strong>304: If the client has done a conditional GET and access is allowed, <strong><em>but the document has not been modified since the date and time specified</em></strong> in <em>If-Modified-Since</em> field, the server responds with a 304 status code and does not send the document body to the client.</p>
<p><strong><em>Translation</em></strong><br />
The browser would ask the server if the cached data is fresh enough and use the cached data.</p>
<p><strong><em>Resolution</em></strong><br />
Why is Internet Explorer acting up and not Chrome, FireFox, Safari, Opera?</p>
<p>Checked on Non-Microsoft Browsers and their respective Developer Tools and they all return 200 every time. What going on? Why is Internet Explorer being so difficult?</p>
<p>Hence, checked the configuration of Internet Settings and adjusted the following settings to make it all work:</p>
<ol>
<li>Go the &#8220;Tools&#8221; -&gt; &#8220;Internet Options&#8221;</li>
<li>Under the &#8220;Browser History&#8221; -&gt; Select &#8220;Settings&#8221;</li>
<li>By default, the browser is set to &#8220;Automatically&#8221;.<br />
Adjust to &#8220;Every time I visit the webpage&#8221; and Click on &#8220;OK&#8221;.</li>
</ol>
<p> <span style="text-decoration: underline;"><strong>Conclusion<br />
</strong></span><br />
I was very annoyed by this behavior in Internet Explorer.</p>
<p>However, the lesson learned was to make sure that (1) you test your solutions on all major browsers, while (2) leveraging their respective developer tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2011/03/26/silverlight-caching-data-requests-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adding a Silverlight Control to an existing ASP.NET Website</title>
		<link>http://blog.metrostarsystems.com/2010/12/29/adding-a-silverlight-control-to-an-existing-asp-net-website/</link>
		<comments>http://blog.metrostarsystems.com/2010/12/29/adding-a-silverlight-control-to-an-existing-asp-net-website/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 13:30:16 +0000</pubDate>
		<dc:creator>Johnny Bouder</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[ASP .Net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[Silverlight Control]]></category>
		<category><![CDATA[tips & tricks]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=4351</guid>
		<description><![CDATA[I’ve only been working with Silverlight for a few months now and I’ve came to the conclusion that either my Google-fu is lacking or there isn’t a great deal of lower level information out there on how to get started. Personally I’m going with the latter because in my experience if you follow some of these posts online you’ll find yourself creating a sample Silverlight project, which is hosted within its own development application. But how do you actually add the control to your existing site?

Hopefully this will shed some light on the subject.]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>I’ve only been working with Silverlight for a few months now and I’ve came to the conclusion that either my Google-fu is lacking or there isn’t a great deal of lower level information out there on how to get started. Personally I’m going with the latter because in my experience if you follow some of these posts online you’ll find yourself creating a sample Silverlight project, which is hosted within its own development application. But how do you actually add the control to your existing site?</p>
<p>Hopefully this will shed some light on the subject.</p>
<p>It turns out that this task is very simple and can be completed in a few steps. These steps include: creating the control (assuming this has been done already), adding the Silverlight application package (.xap) to your website, and adding the Silverlight Object element to a page.</p>
<p>Given that you have already created your Silverlight control (you did didn’t you?), we will move on to step 2: Adding the application package to some location on your site.</p>
<ol>
<li>Within your website add a directory and call it ClientBin (you actually can name this anything you like, but this is the standard).</li>
<li>Navigate to your Silverlight project folder on your computer, open the Bin directory, open the Debug directory, and copy the .xap file.</li>
<li>Now navigate to your website and paste this file into the ClientBin directory. You’re solution explorer in Visual Studio should look something like this:</li>
</ol>
<p><img title="Solution Explorer" src="https://blog.metrostarsystems.com/wp-content/uploads/2010/12/solution_explorer_sn.png" alt="Solution Explorer" width="277" height="255" /></p>
<p>And last but not least, we will place your new Silverlight control on your site. To do this, we need only a little HTML, so copy the code below:</p>
<p><pre class="brush: xml">&lt;div id=&quot;silverlightControlHost&quot; style=&quot;height:100%&quot;&gt;
&lt;object width=&quot;100%&quot; height=&quot;100%&quot; type=&quot;application/x-silverlight-2&quot; data=&quot;data:application/x-silverlight-2,&quot; &gt;
&lt;param name=&quot;source&quot; value=&quot;ClientBin/Silverlight.xap&quot;/&gt;
&lt;param name=&quot;background&quot; value=&quot;white&quot; /&gt;
&lt;param name=&quot;minRuntimeVersion&quot; value=&quot;3.0.40624.0&quot; /&gt;
&lt;param name=&quot;autoUpgrade&quot; value=&quot;true&quot; /&gt;
&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=149156&amp;v=3.0.40624.0&quot; style=&quot;text-decoration: none;&quot;&gt;
&lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=161376&quot; alt=&quot;Get Microsoft Silverlight&quot; style=&quot;border-style: none&quot;/&gt;
&lt;/a&gt;
&lt;/object&gt;
&lt;iframe id=&quot;_sl_historyFrame&quot; style='visibility:hidden;height:0px;width:0px;border:0px'&gt;&lt;/iframe&gt;
&lt;/div&gt;
</pre></p>
<p>Now open your website, find the location in the site where you want to place it, and paste the code in. Also, unless you named your Silverlight project Silverlight, rename the source parameter to match your filename.</p>
<p>And that’s it!</p>
<p>Before closing, I thought it might help to explain the different parts of the code, so here goes.</p>
<ul style="list-style: disc;">
<li>The div is what contains your control. You don’t need the div, but it has become somewhat of a standard for me.</li>
<li>The Object tag is what is used within the HTML to host the application. Alternatively you can use JavaScript to replace the object tag, but given that most browsers now recognize these tags, it generally is not necessary. Also, it is generally a good idea to set the Height and Width as specified in the above code to ensure that your control is completely displayed.</li>
<li style="list-style: none !important;">
<ul>
<li>source – the location of your application package (usually within a ClientBin directory)</li>
<li>background – the color of the object background.</li>
<li>minRuntimeVersion – the minimum version of Silverlight required to be on the persons computer who is accessing the site. For most applications the version above should be more than enough. You may also want to use a lower version if you know that people accessing your site mostly have a lower version. And a higher version may be required if your application requires it.</li>
<li>autoUpgrade – if the user does not have the minimum required version, this parameter is used to specify if you want it to prompt the user to install the upgrade necessary.</li>
</ul>
</li>
<li>The HTML link and image tags are used to provide the user with information about installing Silverlight if necessary.</li>
<li>The iframe is used for cross-browser compatibility. According to Microsoft, the iframe is used to ensure that the Safari browser does not cache the page. Safari caching prevents the Silverlight plug-in from reloading when the user navigates back to a previously-visited Silverlight page.</li>
</ul>
<p>So again, that’s essentially it! And again, I am new to this, so if I misrepresented something, please feel free to point it out. I hope this has been helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2010/12/29/adding-a-silverlight-control-to-an-existing-asp-net-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surface SDK and Windows 7</title>
		<link>http://blog.metrostarsystems.com/2010/02/08/surface-sdk-and-windows-7/</link>
		<comments>http://blog.metrostarsystems.com/2010/02/08/surface-sdk-and-windows-7/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 16:01:56 +0000</pubDate>
		<dc:creator>Jorge "El Che" Vasquez</dc:creator>
				<category><![CDATA[Our Culture]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[.MSI]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[vista]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=2501</guid>
		<description><![CDATA[I recently upgraded my computer from Windows Vista to Windows 7.  And while setting up my computer, I discovered that the Microsoft Surface SDK only works on Windows Vista. I am not going to lie, but I was very disappointed and could not see why the SDK could not work on Windows 7. Hence, I went ahead and searched<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>I recently upgraded my computer from Windows Vista to Windows 7.  And while setting up my computer, I discovered that the Microsoft Surface SDK only works on Windows Vista.</p>
<p>I am not going to lie, but I was very disappointed and could not see why the SDK could not work on Windows 7. Hence, I went ahead and searched the web for individuals with the same issue. Hence, I discovered this post which helps you with adjusting the Surface SDK msi file, along with samples to work on Windows 7.</p>
<p>Great Post !!!</p>
<p><a href="http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/">http://www.grumpydev.com/2009/05/17/surface-sdk-sp1-on-vista-and-win7-x64/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2010/02/08/surface-sdk-and-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Please wait while Setup finishes determining your disk space requirements</title>
		<link>http://blog.metrostarsystems.com/2010/02/02/please-wait-while-setup-finishes-determining-your-disk-space-requirements/</link>
		<comments>http://blog.metrostarsystems.com/2010/02/02/please-wait-while-setup-finishes-determining-your-disk-space-requirements/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:21:23 +0000</pubDate>
		<dc:creator>Jorge "El Che" Vasquez</dc:creator>
				<category><![CDATA[Our Culture]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[.MSI]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[tips & tricks]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=2495</guid>
		<description><![CDATA[.MSI files can act strangely at times. Causing us to explode in anger as to why it decided that it must check your disk for space requirements. Is this a sign that I must take a break and get a cup of coffee? Hence, I clicked on &#8220;Return&#8221; on the above message and took a<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>.MSI files can act strangely at times. Causing us to explode in anger as to why it decided that it must check your disk for space requirements.</p>
<p><img title="MSI Message" src="http://blog.metrostarsystems.com/wp-content/uploads/2010/02/Sur.png" alt="MSI waiting to determine disk space requirements" width="393" height="311" /></p>
<p>Is this a sign that I must take a break and get a cup of coffee?</p>
<p>Hence, I clicked on &#8220;Return&#8221; on the above message and took a break.</p>
<p>To my surprise, nothing had happened. Moreover, when I clicked on &#8220;Next&#8221;, I received the haunting message again</p>
<p>&#8220;Please wait while Setup finishes determining your disk space requirements&#8221;</p>
<p>Haven&#8217;t I waited enough?<br />
Isn&#8217;t this suposed to be easier?<br />
Is this a sign that I should go home earlier?<br />
Am I on Celebrity Ghost Stories?</p>
<p>And then Command Line came to mind.</p>
<p>A black screen (Night) with white letter (Ghost) .</p>
<p>Try this command (Spell)</p>
<p>&#8220;msiexec /package [sample.msi] /qr&#8221;</p>
<p>and it should install the .MSI without any unwanted messages.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2010/02/02/please-wait-while-setup-finishes-determining-your-disk-space-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walkthrough: DVWP Tooltip</title>
		<link>http://blog.metrostarsystems.com/2009/12/04/dvwp-tooltip/</link>
		<comments>http://blog.metrostarsystems.com/2009/12/04/dvwp-tooltip/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 16:54:08 +0000</pubDate>
		<dc:creator>Chris Lincoln</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Data View Web Part]]></category>
		<category><![CDATA[DVWP]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[tooltip]]></category>
		<category><![CDATA[XSL]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=2240</guid>
		<description><![CDATA[Tooltips may be implemented to greatly improve user experience in many scenarios.  This walkthrough will provide a method with which tooltip functionality may be implemented on SharePoint Data View Web Parts (DVWPs) using XSL and JavaScript. Preparation Open the SharePoint site in SharePoint Designer 2007 Open the page on which the tooltip functionality will be implemented Enable either<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p><a href="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/rowview_object_hiearchy.png"></a><a href="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/dvwp_tooltip_example.jpg"></a>Tooltips may be implemented to greatly improve user experience in many scenarios.  This walkthrough will provide a method with which tooltip functionality may be implemented on SharePoint Data View Web Parts (DVWPs) using XSL and JavaScript.</p>
<h2>Preparation</h2>
<ol>
<li>Open the SharePoint site in SharePoint Designer 2007</li>
<li>Open the page on which the tooltip functionality will be implemented</li>
<li>Enable either Split or Code view</li>
</ol>
<h2>Create the Tooltip</h2>
<ol>
<li> Locate the DVWP in which the tooltip functionality will be implemented</li>
<li>Locate the XSL template &#8220;dvt_1.rowview&#8221; within the DVWP<br />
<table border="0" width="100%">
<tbody>
<tr>
<td style="border-bottom:1px gray solid" width="99%"></td>
<td style="background-color:#EAEAEA;border:1px gray solid;text-align:center;padding-left:10px;padding-right:10px">Example</td>
</tr>
<tr>
<td style="border-left:1px gray solid;border-bottom:1px gray solid;font-family:'Courier New', Courier, monospace" colspan="2">&lt;xsl:template name=&#8221;dvt_1.rowview&#8221;&gt;</td>
</tr>
</tbody>
</table>
<p>This XSL template specifies what is rendered for each List Item displayed in the DVWP.  A tooltip will be rendered for eash List Item and therefore should be added to this template.</li>
<li>Locate where the tooltip should appear<br />
No consideration for spacing of the tooltip should be taken into account.  The tooltip will utilize the position style value “absolute” to display over other page content.</li>
<li>Insert the blank tooltip<br />
<table border="0" width="100%">
<tbody>
<tr>
<td style="border-bottom:1px gray solid" width="99%"></td>
<td style="background-color:#EAEAEA;border:1px gray solid;text-align:center;padding-left:10px;padding-right:10px">Example</td>
</tr>
<tr>
<td style="border-left:1px gray solid;border-bottom:1px gray solid;font-family:'Courier New', Courier, monospace" colspan="2">&lt;div style=&#8221;position:absolute;display:none;margin-top:14px;white-space:<br />
»nowrap;overflow:visible;border:silver 1px solid;background-color:<br />
»white&#8221; class=&#8221;ms-listdescription&#8221;&gt;<br />
&lt;xsl:attribute name=&#8221;id&#8221;&gt;tooltip_&lt;xsl:value-of select=&#8221;@ID&#8221;/&gt;<br />
»&lt;/xsl:attribute&gt;<br />
&lt;xsl:attribute name=&#8221;onmouseenter&#8221;&gt;javascript:this.style.display=<br />
»&#8217;none&#8217;;&lt;/xsl:attribute&gt;<br />
&lt;/div&gt;</td>
</tr>
<tr>
<td style="border-top:1px gray solid;text-align:right" colspan="2">
<table style="border-left:1px gray solid;border-bottom:1px gray solid;border-right:1px gray solid;color:gray" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding-left:10px;padding-right:10px">» &#8211; unintended line break</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>The tooltip may be any HTML object and is not limited to the DIV object.  The tooltip HTML object must have the <em>id</em> attribute set as shown in the provided example.  The <em>position</em> and <em>display</em> style attributes should be set as shown in the provided example.  Setting the <em>position</em> style attribute to &#8220;absolute&#8221; allows the tooltip to display over other page content.  The <em>onmouseenter</em> attribute (as shown in the provided example) hides the tooltip if the user moves the cursor onto the tooltip.</p>
<p>If multiple DVWPs on the same page will use the tooltip functionality, the id attribute of tooltips must be made distinct in each DVWP.  For example, tooltips in a DVWP on the List &#8220;Transactions&#8221; could use the id attribute convention: tooltip_transactions_[List Item ID].  Thus, tooltip id attributes that may have been &#8220;tooltip_14&#8243; and &#8220;tooltip_14&#8243; may now be &#8220;tooltip_transactions_14&#8243; and &#8220;tooltip_reports_14&#8243;.</li>
<li>Set the tooltip text<br />
<table border="0" width="100%">
<tbody>
<tr>
<td style="border-bottom:1px gray solid" width="99%"></td>
<td style="background-color:#EAEAEA;border:1px gray solid;text-align:center;padding-left:10px;padding-right:10px">Example</td>
</tr>
<tr>
<td style="border-left:1px gray solid;border-bottom:1px gray solid;font-family:'Courier New', Courier, monospace" colspan="2">&lt;xsl:choose&gt;<br />
&lt;xsl:when test=&#8221;string-length(string(@Tooltip))=0&#8243;&gt;<br />
&lt;xsl:text&gt;No tooltip.&lt;/xsl:text&gt;<br />
&lt;/xsl:when&gt;<br />
&lt;xsl:otherwise&gt;<br />
&lt;xsl:value-of select=&#8221;@Tooltip&#8221; disable-output-escaping=&#8221;yes&#8221;/&gt;<br />
&lt;/xsl:otherwise&gt;<br />
&lt;/xsl:choose&gt;</td>
</tr>
</tbody>
</table>
<p>If the tooltip references a List Item column that is not required (i.e. may be empty), it is suggested that empty values be handled as shown in the provided example. List columns must be referenced by their internal name. Setting the <em>disable-output-escaping</em> attribute to &#8220;yes&#8221; will display special (i.e. escaped) characters properly (i.e. unescaped). Please note that the provided example references a custom (i.e. non-standard) column called &#8220;Tooltip&#8221;.</li>
</ol>
<p style="TEXT-ALIGN: left">The tooltip should be located like:</p>
<p style="text-align: center;"><a title="dvt_1.rowview HTML object hiearchy" href="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/rowview_object_hiearchy.png" target="_blank"><img class="aligncenter" style="border-width: 0px;" title="dvt_1.rowview HTML object hiearchy" src="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/rowview_object_hiearchy-1024x236.png" alt="dvt_1.rowview HTML object hiearchy" width="480" height="110" /></a></p>
<p>As a result of setting the position style attribute to &#8220;absolute&#8221;, the tooltip renders like:</p>
<p style="text-align: center;"><a title="dvt_1.rowview HTML object rendering" href="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/rowview_object_rendering.png" target="_blank"><img class="size-large wp-image-2286 aligncenter" style="margin: 0px; border-width: 0px;" title="dvt_1.rowview HTML object rendering" src="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/rowview_object_rendering-1024x256.png" alt="dvt_1.rowview HTML object rendering" width="480" height="120" /></a></p>
<h2>Create the Tooltip Triggers</h2>
<ol>
<li> Locate the DVWP in which the tooltip has been created</li>
<li>Locate the XSL template &#8220;dvt_1.rowview&#8221; within the DVWP<br />
<table border="0" width="100%">
<tbody>
<tr>
<td style="border-bottom:1px gray solid" width="99%"></td>
<td style="background-color:#EAEAEA;border:1px gray solid;text-align:center;padding-left:10px;padding-right:10px">Example</td>
</tr>
<tr>
<td style="border-left:1px gray solid;border-bottom:1px gray solid;font-family:'Courier New', Courier, monospace" colspan="2">&lt;xsl:template name=&#8221;dvt_1.rowview&#8221;&gt;</td>
</tr>
</tbody>
</table>
<p>This XSL template specifies what is rendered for each List Item displayed in the DVWP. Each tooltip trigger (i.e. system response to a user action) will show /hide the tooltip in the same row (i.e. TR object) as itself.  Therefore, the tooltip trigger should be located within this template.</li>
<li>Locate the HTML object that will trigger the display of tooltips in response to a specified user action.</li>
<li>Insert the tooltip triggers<br />
<table border="0" width="100%">
<tbody>
<tr>
<td style="border-bottom:1px gray solid" width="99%"></td>
<td style="background-color:#EAEAEA;border:1px gray solid;text-align:center;padding-left:10px;padding-right:10px">Example</td>
</tr>
<tr>
<td style="border-left:1px gray solid;border-bottom:1px gray solid;font-family:'Courier New', Courier, monospace" colspan="2">&lt;td&gt;<br />
&lt;xsl:attribute name=&#8221;onmouseenter&#8221;&gt;javascript:var tooltipObj=document.<br />
»getElementById(&#8216;tooltip_&lt;xsl:value-of select=&#8221;@ID&#8221;/&gt;&#8217;);tooltipObj.<br />
»style.left=event.clientX;tooltipObj.style.top=clientY;tooltipObj.<br />
»style.display=&#8221;;&lt;/xsl:attribute&gt;<br />
&lt;xsl:attribute name=&#8221;onmouseleave&#8221;&gt;javascript:document.getElementById(<br />
»&#8217;tooltip_&lt;xsl:value-of select=&#8221;@ID&#8221;/&gt;&#8217;).style.display=&#8217;none&#8217;;<br />
»&lt;/xsl:attribute&gt;<br />
&lt;xsl:value-of select=&#8221;@Title&#8221;/&gt;<br />
&lt;/td&gt;</td>
</tr>
<tr>
<td style="border-top:1px gray solid;text-align:right" colspan="2">
<table style="border-left:1px gray solid;border-bottom:1px gray solid;border-right:1px gray solid;color:gray" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding-left:10px;padding-right:10px">» &#8211; unintended line break</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>Tooltip triggers are inline JavaScript that find and display the tooltip appropriately. The tooltip is shown by setting its <em>display</em> style attribute to null and hidden by setting its <em>display</em> style attribute to &#8220;none&#8221;. The provided example shows the tooltip when the user moves the cursor onto the Title column&#8217;s parent TD and hides the tooltip when the user moves the cursor off the title column&#8217;s parent TD. Please note that the tooltip triggers are applied to the column&#8217;s parent TD to provide an optimal user experience.  The provided example displays the tooltip at the point where the user moved the cursor onto the parent TD (rather than always below the parent TD content).</li>
</ol>
<h2>Example</h2>
<p style="text-align: center;"><a title="DVWP Tooltip example" href="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/dvwp_tooltip_example.jpg" target="_blank"><img class="  aligncenter" style="margin: 0px; border-width: 0px;" title="dvwp_tooltip_example" src="http://blog.metrostarsystems.com/wp-content/uploads/2009/12/dvwp_tooltip_example.jpg" alt="DVWP Tooltip example" width="556" height="86" /></a></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2009/12/04/dvwp-tooltip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It’s Peanut Butter Jelly Time</title>
		<link>http://blog.metrostarsystems.com/2009/11/30/its-peanut-butter-jelly-time/</link>
		<comments>http://blog.metrostarsystems.com/2009/11/30/its-peanut-butter-jelly-time/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 17:22:09 +0000</pubDate>
		<dc:creator>Gitendra Malla</dc:creator>
				<category><![CDATA[Our Culture]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[MetroStar Systems]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[tips & tricks]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=2197</guid>
		<description><![CDATA[On an early Thursday morning last August, I walked into the office with a hole in my stomach. Following my regular routine, I went to the kitchen area and tossed two loaves of bread into the great belly of the toaster oven, which boasts a 12 inch pizza capacity. As usual, I waited for the<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<div class="wp-caption aligncenter" style="width: 360px"><img class=" " title="Toaster Oven VS Toaster" src="http://blog.metrostarsystems.com/wp-content/uploads/2009/11/Gitendra-toastervsoven2.jpg" alt="Toaster VS Toaster Oven" width="350" height="229" /><p class="wp-caption-text">Toaster Oven VS Toaster</p></div>
<p>On an early Thursday morning last August, I walked into the office with a hole in my stomach. Following my regular routine, I went to the kitchen area and tossed two loaves of bread into the great belly of the toaster oven, which boasts a 12 inch pizza capacity. As usual, I waited for the oven to heat up while I planned my day alongside.</p>
<p>Mo, the HR Director of the company, entered the kitchen and proceeded to caution me. Ali, the company CEO, is not in a good mood &#8230; so, I should hurry up with my daily ritual. I decided to give the toaster oven one more minute with my breakfast. The next minute, I am meticulously spreading some peanut butter over my toast.</p>
<p><em>&#8220;How long does it take you to make your breakfast every day?&#8221;</em></p>
<p>Lo and behold, it is Ali at the kitchen door. Now, I know that it is a rhetorical question. So, I patiently wait for the follow-up:</p>
<p><em>&#8220;Add up all the time you spend every morning in this kitchen making your breakfast. And when you get the answer, go tell our closest competition how much you have helped them!&#8221;</em></p>
<p>So, I did. (The first part of what he said at least.)</p>
<p>I finished making my breakfast and took it to my desk, where I looked at the following conservative figures:</p>
<ul>
<li>Number of work weeks in a year: (N) = 48  [10 days      of personal leave; 10 days of holidays]</li>
</ul>
<ul>
<li>Average number of days/week I make my      breakfast:     (d) = 4</li>
<li>Average number of minutes I spend/breakfast      session:     (m) = 15</li>
<li>Total number of minutes that I spend/year on      breakfast:     (T) = N*d*m</li>
<li>(T) = 48*4*15</li>
<li>(T) = 2880</li>
<li>Total = 48 hours</li>
</ul>
<p>Before I made these calculations, I was taken aback by a CEO&#8217;s interference in an issue as &#8220;minor&#8221; as making a simple breakfast. But after these calculations I realize that <strong>six</strong> working days of a year is a lot of time to lose for a small business!</p>
<p>So, what next? Blame the toaster oven, of course! It dawned on me: A man is only as good as the tool he owns. Every morning I would sit in the kitchen, submissive to the status quo of the slow burning toaster oven. I was using the wrong tool all along &#8211; wasting both time and energy. That afternoon, I went to a Target store nearby and bought a real toaster &#8211; you know, the one with two slots for the bread. The following morning my new &#8216;tool&#8217; would help me cut the length of my breakfast ritual about 75%! The following figures would emerge:</p>
<ul>
<li>Average number of minutes I spend/breakfast session      (m&#8217;) = 4</li>
<li>Total number of minutes that I spend/year on breakfast      (T) = N*d*m</li>
<li>(T) = 48*4*4</li>
<li>(T) = 768</li>
<li>Total = 12.8 hours</li>
</ul>
<p>It is always convincing when numbers tell you a story. To tell a story, however, needs a visionary intervention. At <a href="http://www.metrostarsystems.com/" target="_blank">MetroStar Systems</a>, we are a team of visionaries. As such, we keep our eyes on the bigger picture but we don’t let the “minor” details slide. We don’t cry over spilled milk, but make the best of the situation. We think both inside and outside the box, and if the box is not right, we change it. We are an agile team of active learners and proactive workers – we are professionals.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2009/11/30/its-peanut-butter-jelly-time/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Microsoft My Phone</title>
		<link>http://blog.metrostarsystems.com/2009/10/14/microsoft-my-phone/</link>
		<comments>http://blog.metrostarsystems.com/2009/10/14/microsoft-my-phone/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 15:09:42 +0000</pubDate>
		<dc:creator>Jorge "El Che" Vasquez</dc:creator>
				<category><![CDATA[Our Culture]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=1766</guid>
		<description><![CDATA[If you ever lost a phone, you know how it feels to know that all the data that you had saved on your phone is gone. All those pictures, music and contacts are gone with the phone. It happened to me and it was a royal pain to recover a small portion of what I<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>If you ever lost a phone, you know how it feels to know that all the data that you had saved on your phone is gone. All those pictures, music and contacts are gone with the phone. It happened to me and it was a royal pain to recover a small portion of what I had lost.</p>
<p>The experience was a reminder of how much we rely on our mobile devices nowadays; hence, I am extremely glad that Microsoft introduced the &#8220;My Phone&#8221; service. Microsoft My Phone mainly concentrates on</p>
<ul>
<li>Over-the-air back up of your windows mobile phone</li>
<li>Share photos with your favorite social networking sites</li>
<li>Manage your contacts, text messages and more online for free</li>
<li>Find your lost phone</li>
</ul>
<p>If I had this service on my phone last year, I would have been able to</p>
<ul>
<li>Restore all the data onto my new windows mobile phone</li>
<li>Find the last known and current location of my phone on a map</li>
<li>Remotely lock my phone and display a custom message</li>
<li>Remotely perform a hard reset (erasing all data)</li>
<li>Set the phone to ring, even if it&#8217;s set to vibrate or silent.</li>
</ul>
<p>Find out more: <a href="http://myphone.microsoft.com/">http://myphone.microsoft.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2009/10/14/microsoft-my-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Customize the Layouts Application Master Page</title>
		<link>http://blog.metrostarsystems.com/2009/08/12/how-to-customize-the-layouts-application-master-page/</link>
		<comments>http://blog.metrostarsystems.com/2009/08/12/how-to-customize-the-layouts-application-master-page/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 14:45:49 +0000</pubDate>
		<dc:creator>Hector Portillo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[/_layouts]]></category>
		<category><![CDATA[Application.master]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://blog.metrostarsystems.com/?p=1279</guid>
		<description><![CDATA[The introduction of master pages in Microsoft Office SharePoint Server 2007 has made it easy for designers like me to customize the look and feel of SharePoint sites. I had created and customized master pages and user controls in .Net applications using Visual Studio. I was feeling right at home when I opened my first<em> ... </em>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://blog.metrostarsystems.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>The introduction of master pages in Microsoft Office SharePoint Server 2007 has made it easy for designers like me to customize the look and feel of SharePoint sites. I had created and customized master pages and user controls in .Net applications using Visual Studio. I was feeling right at home when I opened my first MOSS site in SharePoint Designer. I found I could designate my own custom master page to control the layout of pages of my lists and libraries. I could also designate another master page to control the layout of content pages. I had this thought that I could control the look and feel of every page in a MOSS site right from the SharePoint Designer environment. I would switch between SP Designer and IE explorer to make sure my custom SharePoint site was not breaking in the process of the customization. Finally, after testing the home page for errors, I was happy with the new custom look and feel.</p>
<h2>How to Customize the ‘/_layouts’ Application.master Master Page</h2>
<p>I started browsing my new customized site and noticed all system pages under the “/_layouts” folder were using the out of the box look and feel! Frustration started to kick in and I could not figure out why those pages were sticking to their old interface. I began to Google in hopes that someone out there had figured out a solution to this.</p>
<p>I found this:</p>
<p><a href="http://www.sharepointblogs.com/dwise/archive/2007/01/08/one-master-to-rule-them-all-two-actually.aspx">http://www.sharepointblogs.com/dwise/archive/2007/01/08/one-master-to-rule-them-all-two-actually.aspx</a></p>
<p>It uses HttpModules to intercept the default Application.master master page and replaces it with custom Application.master master page. The steps are real easy to follow and quick to implement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrostarsystems.com/2009/08/12/how-to-customize-the-layouts-application-master-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

