<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Marc D Anderson's Blog</title>
	
	<link>http://mdasblog.wordpress.com</link>
	<description>A Knowledge Management Zealot Speaks Out</description>
	<lastBuildDate>Thu, 12 Nov 2009 04:10:05 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="mdasblog.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://www.gravatar.com/blavatar/ebc89f2445125d4111c02f160a264272?s=96&amp;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Marc D Anderson's Blog</title>
		<link>http://mdasblog.wordpress.com</link>
	</image>
			<geo:lat>42.324397</geo:lat><geo:long>-71.139331</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MarcDAndersonsBlog" type="application/rss+xml" /><feedburner:emailServiceId>MarcDAndersonsBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/MarcDAndersonsBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.addtoany.com/?linkname=Marc%20D%20Anderson%27s%20Blog&amp;linkurl=http%3A%2F%2Ffeeds.feedburner.com%2FMarcDAndersonsBlog&amp;type=feed" src="http://www.addtoany.com/addfr-b.gif">Add to Any Feed Reader</feedburner:feedFlare><feedburner:browserFriendly>Thanks for subscribing to my blog. I hope you find some things useful. Let me know how I'm doing -- leave me a comment (or two).</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>A jQuery Library for SharePoint Web Services (WSS 3.0 and MOSS): the SPDisplayRelatedInfo Function</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/hlzJw7eLEiw/</link>
		<comments>http://mdasblog.wordpress.com/2009/11/11/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-the-spdisplayrelatedinfo-function/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 04:04:31 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery library for SharePoint Web Services]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11075</guid>
		<description><![CDATA[Cross posted from EndUserSharePoint.com&#8230;
SPDisplayRelatedInfo is a function in the jQuery Library for SharePoint Web Services that lets you display information which is related to the selection in a dropdown. This can really bring your forms to life for users: rather than just selecting bland text values, you can show them images and links that are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11075&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cross posted from <a href="http://www.endusersharepoint.com/2009/11/11/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-part-3-the-spdisplayrelatedinfo-function" target="_blank">EndUserSharePoint.com</a>&#8230;</p>
<p><a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPDisplayRelatedInfo">SPDisplayRelatedInfo</a> is a function in the <a href="http://spservices.codeplex.com/">jQuery Library for SharePoint Web Services</a> that lets you display information which is related to the selection in a dropdown. This can really bring your forms to life for users: rather than just selecting bland text values, you can show them images and links that are related to their choices.</p>
<h4>Example</h4>
<p>Let’s take a look at a customized edit form (EditForm.aspx copied into EditFormCustom.aspx) for a SharePoint list. In this list, we’re capturing sales opportunities in my favorite demo list. In addition to everything else, we want to capture the System that the customer might want to buy.</p>
<p>Here’s what the form might look like. It’s pretty humdrum (though it does have <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPCascadeDropdowns">SPCascadeDropdowns</a> applied to it so that the Country -&gt; Region -&gt; State relationships are enforced, as well as <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPLookupAddNew">SPLookupAddNew</a> for easy addition of Regions).</p>
<p style="text-align:center;"><a href="http://mdasblog.files.wordpress.com/2009/11/clip_image002.jpg"><img class="aligncenter" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="clip_image002" src="http://mdasblog.files.wordpress.com/2009/11/clip_image002_thumb.jpg?w=622&#038;h=282" border="0" alt="clip_image002" width="622" height="282" /></a></p>
<p>If we use the SPDisplayRelatedInfo function, we can spiff up the form quite a bit. Now when we choose a System, we can display an image of it and a link to the Lead Sales Rep:</p>
<p style="text-align:center;"><a href="http://mdasblog.files.wordpress.com/2009/11/clip_image004.jpg"><img class="aligncenter" src="http://mdasblog.files.wordpress.com/2009/11/clip_image004_thumb.jpg" border="0" alt="" /></a></p>
<p>When the user makes a different selection, the System Image and Lead Sales Rep will change accordingly. Much nicer, IMHO. What you can display in this manner for each column in your list on the form is really only left to your imagination, based on the available column types. You might include a link to a User Manual, for example, or show a list of available inventory at each of your warehouse locations.</p>
<h4>Prerequisites</h4>
<p>This is one of the places where you’ll be glad if you’ve followed my previous advice to set up reference lists for things like Products, States, and Regions. In this case, I have a list called Systems, which has three columns:</p>
<p style="text-align:center;"><a href="http://mdasblog.files.wordpress.com/2009/11/clip_image006.jpg"><img class="aligncenter" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="clip_image006" src="http://mdasblog.files.wordpress.com/2009/11/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="377" height="90" /></a></p>
<p>The System column in my Sales Opportunities list is a Lookup column into the Title column of the System list. That gives us a nice, tight relationship between the System value in the Sales Opportunity and the Title of the Systems list.</p>
<h4>Syntax</h4>
<p>As with all of the functions in the <a href="http://spservices.codeplex.com/">jQuery Library for SharePoint Web Services</a>, everything is put in place from the UI or SharePoint Designer. There’s nothing to install server-side. You simply need to add references to the core jQuery library and the jQuery Library for SharePoint Web Services and then call the function. See the documentation on the Codeplex site for more details on how to set things up.</p>
<p>SPDisplayRelatedInfo currently takes the following options:</p>
<pre class="brush: jscript;">$().SPServices.SPDisplayRelatedInfo({
  columnName: &quot;&quot;,// The display name of the column in the form
  relatedWebURL: &quot;&quot;, // [Optional] The name of the Web (site) which contains the related list
  relatedList: &quot;&quot;, // The name of the list which contains the additional information
  relatedListColumn: &quot;&quot;, // The internal name of the related column in the related list
  relatedColumns: [], // An array of internal names of related columns to display
  displayFormat: &quot;table&quot;, // [Optional] The format to use in displaying the related information. Possible values are: &quot;table&quot;, &quot;list&quot;.
  headerCSSClass: &quot;ms-vh2&quot;,// [Optional] CSS class for the table headers
  rowCSSClass: &quot;ms-vb&quot;, // [Optional] CSS class for the table rows
  debug: true // [Optional] If true, show error messages; if false, run silent
});</pre>
<p>In the example above, the function call looks like this:</p>
<pre class="brush: jscript;">$().SPServices.SPDisplayRelatedInfo({
  columnName: &quot;System&quot;,
  relatedList: &quot;Systems&quot;,
  relatedListColumn: &quot;Title&quot;,
  relatedColumns: [&quot;System_x0020_Image&quot;, &quot;Lead_x0020_Sales_x0020_Rep&quot;],
  displayFormat: &quot;list&quot;
});</pre>
<p>So I’m asking SPDisplayRelatedInfo to show me the values in the <strong>System_x0020_Image</strong> and <strong>Lead_x0020_Sales_x0020_Rep</strong> columns (these are the StaticNames of the list columns as opposed to the DisplayNames) in the <strong>Systems</strong> list under the <strong>System</strong> column in my form using the <strong>list</strong> display format where the <strong>System</strong> value matches the <strong>Title</strong> value. I’m just taking the default CSS classes for the example. As you can see, you can pass in any CSS class you’d like to make the SPDisplayRelatedInfo output match your site branding.</p>
<p>The displayFormat takes one of two options:</p>
<ul>
<li>&#8220;table&#8221; displays the matching items much like a standard List View Web Part would, in a table with column headers</li>
<li>&#8220;list&#8221; also uses a table, but displays the item(s) in a vertical orientation, like in the example above</li>
</ul>
<h4>How Does It Work?</h4>
<p>The SPDisplayRelatedInfo works like this:</p>
<ul>
<li>When the function is first called, it attaches an event handler to the dropdown control. The logic here varies a bit depending on what type of dropdown it is.</li>
<li>When the selected option in the dropdown changes, SPDisplayRelatedInfo calls two Lists Web Service operations:
<ul>
<li>GetList on the relatedList to get information about its columns (fields)</li>
<li>GetListItems to get the items where the specified column’s value matches the current selection. Note that there can be multiple items returned; generally displayFormat: “table” makes more sense if you’ll want to display multiple items.</li>
</ul>
</li>
<li>For each column it’s asked to display, SPDisplayRelatedInfo calls a private function (showColumn) to render the column value based on its type. Most of the normal column types are covered, though locale conversions can’t be done from the client side (yet!).</li>
</ul>
<h4>Conclusion</h4>
<p>Quite a few of the early functions I’ve implemented in the library can help you make your forms more interactive and interesting to use. Having worked with data for as long as I have, I know all too well how the GIGO rules can bite you. (<span style="text-decoration:underline;">G</span>arbage <span style="text-decoration:underline;">I</span>n, <span style="text-decoration:underline;">G</span>arbage<span style="text-decoration:underline;"> Out</span>, in case you haven’t seen the acronym before.) By utilizing some of the functions like SPDisplayRelatedInfo, you can help your users do a better job adding data into SharePoint lists, and maybe even make it a little bit more fun.</p>
 Tagged: jQuery, jQuery library for SharePoint Web Services, SharePoint, SharePoint Designer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11075/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11075&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=hlzJw7eLEiw:PNe9CMMWP94:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/hlzJw7eLEiw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/11/11/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-the-spdisplayrelatedinfo-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/11/clip_image002_thumb.jpg" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/11/clip_image004_thumb.jpg" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/11/clip_image006_thumb.jpg" medium="image">
			<media:title type="html">clip_image006</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/11/11/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-the-spdisplayrelatedinfo-function/</feedburner:origLink></item>
		<item>
		<title>SharePoint’s Web Services, jQuery, and the z:row Namespace in Safari and Chrome</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/4G8Cq7qRr-A/</link>
		<comments>http://mdasblog.wordpress.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 04:12:02 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery library for SharePoint Web Services]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/</guid>
		<description><![CDATA[jQuery&#8217;s totally cross-browser capable, right?  Well, generally, yes.  However, through no fault of jQuery, Safari and Chrome don&#8217;t seem to like the z:row namespace that the SharePoint Lists Web Service GetListItems operation returns.  I found a nice workaround for z:row from Mike Hacker to improve cross-browser compatibility.  I added a check for ItemCount up front [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11056&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>jQuery&#8217;s totally cross-browser capable, right?  Well, generally, yes.  However, through no fault of jQuery, Safari and Chrome don&#8217;t seem to like the z:row namespace that the SharePoint Lists Web Service GetListItems operation returns.  I found a <a href="http://blogs.us.sogeti.com/mhacker/2009/07/01/sharepoint-photo-gallery-using-jquery-part-2">nice workaround for z:row</a> from <a href="http://blogs.us.sogeti.com/mhacker">Mike Hacker</a> to improve cross-browser compatibility.  I added a check for ItemCount up front so that we don&#8217;t try to use the getElementsByTagNameNS function in IE if there have been no rows returned legitimately.</p>
<p>Here&#8217;s my function.  I call it with the XMLHttpRequest result wherever I&#8217;m using GetListItems to get a usable rowset regardless of the browser.</p>
<pre class="brush: jscript;">// Find the rows in an XMLHttpRequest.  This includes a workaround for Safari and Chrome's
// aversion to the z:row namespace.
function getZRows(rXML) {
    var rows;
    var itemCount = $(rXML).find(&quot;rs\\:data&quot;).attr(&quot;ItemCount&quot;);
    if (rXML.getElementsByTagName(&quot;z:row&quot;).length == 0 &amp;&amp; itemCount == undefined) {
        rows = rXML.getElementsByTagNameNS('*', 'row');
    } else {
        rows = rXML.getElementsByTagName(&quot;z:row&quot;);
    }
    return rows;
}</pre>
<p>I&#8217;ve tested this in IE8, Firefox, Safari, and Chrome on my Windows PC.  It still doesn&#8217;t seem to solve the issue on Safari for Mac, but I&#8217;m getting there.  This will at least let the functions in v0.5.0 of my <a href="http://spservices.codeplex.com/">jQuery Library for SharePoint Web Services</a> work with all of the main browsers on the Windows side of things.</p>
 Tagged: jQuery, jQuery library for SharePoint Web Services, SharePoint <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11056/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11056&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=4G8Cq7qRr-A:LGb8IblWgeE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/4G8Cq7qRr-A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/11/08/sharepoints-web-services-jquery-and-the-zrow-namespace-in-safari-and-chrome/</feedburner:origLink></item>
		<item>
		<title>Remembering the Principles Behind the Agile Manifesto</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/cuTRTrw99v4/</link>
		<comments>http://mdasblog.wordpress.com/2009/11/04/principles-behind-the-agile-manifesto/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 15:43:59 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile manifesto]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/2009/11/04/principles-behind-the-agile-manifesto/</guid>
		<description><![CDATA[In discussing the merits of an agile approach to design and development, I went back to the source and read through the Agile Manifesto.&#160; For all the rhetoric that flies around about what agile is, what is or isn’t agile, who knows agile best, etc., it’s great to get back to the guiding principles, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11047&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In discussing the merits of an agile approach to design and development, I went back to the source and read through the <a href="http://agilemanifesto.org/principles.html" target="_blank">Agile Manifesto</a>.&#160; For all the rhetoric that flies around about what agile is, what is or isn’t agile, who knows agile best, etc., it’s great to get back to the guiding principles, which I totally agree with.&#160; In fact, it’s hard to disagree with any of these principles.</p>
<h3>Principles behind the Agile Manifesto</h3>
<p><i>We follow these principles:</i></p>
<p>Our highest priority is to satisfy the customer    <br />through early and continuous delivery     <br />of valuable software. </p>
<p>Welcome changing requirements, even late in    <br />development. Agile processes harness change for     <br />the customer&#8217;s competitive advantage. </p>
<p>Deliver working software frequently, from a    <br />couple of weeks to a couple of months, with a     <br />preference to the shorter timescale. </p>
<p>Business people and developers must work    <br />together daily throughout the project. </p>
<p>Build projects around motivated individuals.    <br />Give them the environment and support they need,     <br />and trust them to get the job done. </p>
<p>The most efficient and effective method of    <br />conveying information to and within a development     <br />team is face-to-face conversation. </p>
<p>Working software is the primary measure of progress. </p>
<p>Agile processes promote sustainable development.    <br />The sponsors, developers, and users should be able     <br />to maintain a constant pace indefinitely. </p>
<p>Continuous attention to technical excellence    <br />and good design enhances agility. </p>
<p>Simplicity&#8211;the art of maximizing the amount    <br />of work not done&#8211;is essential. </p>
<p>The best architectures, requirements, and designs    <br />emerge from self-organizing teams. </p>
<p>At regular intervals, the team reflects on how    <br />to become more effective, then tunes and adjusts     <br />its behavior accordingly. </p>
 Tagged: agile development, agile manifesto <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11047/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11047&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=cuTRTrw99v4:giKvPo7LOoM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/cuTRTrw99v4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/11/04/principles-behind-the-agile-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/11/04/principles-behind-the-agile-manifesto/</feedburner:origLink></item>
		<item>
		<title>Removing the Dotted Line Around Links In Internet Explorer</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/tx3Dnk8QMW0/</link>
		<comments>http://mdasblog.wordpress.com/2009/11/03/removing-the-dotted-line-around-links/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 04:09:45 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11036</guid>
		<description><![CDATA[Here&#8217;s a little mini CSS tip for you.  The little dotted lines around links in Internet Explorer have been bugging me for a long time on a few of the sites I&#8217;ve built.  The dotted line shows up when you click on the link.

I finally Binged it, and found this nice little article entitled Removing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11036&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Here&#8217;s a little mini CSS tip for you.  The little dotted lines around links in Internet Explorer have been bugging me for a long time on a few of the sites I&#8217;ve built.  The dotted line shows up when you click on the link.<br />
<img class="size-full wp-image-11043 alignnone" title="DottedLine1" src="http://mdasblog.files.wordpress.com/2009/11/dottedline1.jpg?w=162&#038;h=50" alt="Dotted Line" width="162" height="50" /><br />
I finally Binged it, and found this nice little article entitled <a href="http://sonspring.com/journal/removing-dotted-links" target="_blank">Removing Dotted Links</a>.</p>
<p>To get rid of the dotted lines in IE, simply add this to your CSS:</p>
<pre class="brush: css;">a {
  outline: none;
}</pre>
<p>There are a few other nice tweaks you can do in the article, but this one fixed my annoyance!</p>
 Tagged: CSS, Internet Explorer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11036/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11036/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11036/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11036/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11036/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11036/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11036/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11036/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11036/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11036/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11036&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=tx3Dnk8QMW0:QdPe5b_iCTM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/tx3Dnk8QMW0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/11/03/removing-the-dotted-line-around-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/11/dottedline1.jpg" medium="image">
			<media:title type="html">DottedLine1</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/11/03/removing-the-dotted-line-around-links/</feedburner:origLink></item>
		<item>
		<title>jQuery Library for SharePoint Web Services: Interim Update on What’s Coming Up in v0.5.0</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/lmILh9JQIFg/</link>
		<comments>http://mdasblog.wordpress.com/2009/11/01/jquery-library-for-sharepoint-web-services-interim-update-on-whats-coming-up-in-v0-5-0/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 15:23:07 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery library for SharePoint Web Services]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/2009/11/01/jquery-library-for-sharepoint-web-services-interim-update-on-whats-coming-up-in-v0-5-0/</guid>
		<description><![CDATA[This post was also published at EndUserSharePoint.com&#8230;
While seemingly everyone else in the SharePoint Universe is oohing and aahing over SharePoint 2010, I continue to plod along with my jQuery Library for SharePoint Web Services.  (Follow the library on Twitter: @jQSPWS.) I&#8217;m sticking with my belief that we&#8217;re all going to be using SharePoint 2007 (WSS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11033&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post was also published at <a href="http://www.endusersharepoint.com/2009/11/02/jquery-library-for-sharepoint-web-services-interim-update-on-what%e2%80%99s-coming-up-in-v0-5-0/" target="_blank">EndUserSharePoint.com</a>&#8230;</p>
<p>While seemingly everyone else in the SharePoint Universe is oohing and aahing over SharePoint 2010, I continue to plod along with my <a href="http://spservices.codeplex.com/" target="_blank">jQuery Library for SharePoint Web Services.</a>  (Follow the library on Twitter: <a href="http://www.twitter.com/jQSPWS" target="_blank">@jQSPWS</a>.) I&#8217;m sticking with my belief that we&#8217;re all going to be using SharePoint 2007 (WSS 3.0 or MOSS) for a good long time, and my library will help make it work better and more &#8220;coolly&#8221; for us now rather than waiting for SharePoint 2010.</p>
<p>SharePoint 2010 isn&#8217;t totally off my radar screen, however.  I&#8217;ve had some discussions with a couple of folks on the SharePoint team at Microsoft about making the library forward compatible with SharePoint 2010.  The <a href="http://msdn.microsoft.com/en-us/library/ee658237.aspx" target="_blank">SharePoint 2010 Web Services</a> documentation is now available in the SDK at MSDN, with the existing Web Services still available (some with new operations) and new Web Services exposing the new functionality in SP2010, of course.  As I learn more about SharePoint 2010, I&#8217;ll be coming up with a strategy for supporting it.</p>
<p>I haven&#8217;t had this much fun writing code for a long time.  I get to learn some new approaches to things, code &#8216;em up, and then help a bunch of you to get them implemented.  I&#8217;m having a ball.  For those of you I&#8217;ve been interacting with on the Codeplex site in the Discussions and Issue Tracker, I want you to know that I appreciate your patience in working with me to use the library.  It&#8217;s still really in its infancy, and because of your willingness to use it now, I&#8217;ll be able to come up with a better set of solutions for you and others later.</p>
<p>There are quite a few things coming up in v0.5.0 that are inspired directly from your troubles in early usage, and hopefully that will make it easier going forward.  There are also a bunch of enhancements and new functions on the drawing board.  I&#8217;ll let the actual <a href="http://spservices.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34865" target="_blank">Release Notes</a> cover all of the nitty-gritty details (keep watching them, as they will evolve as the codebase evolves), but here are a few highlights you can expect in v0.5.0, coming in the next few weeks.</p>
<ul>
<li><strong>Better error handling in the key functions -</strong> Quite a few of you using the library have never touched scripting before, and that&#8217;s fine; I don&#8217;t expect you to need to debug the code.  The current implementation of functions like SPCascadeDropdowns and SPDisplayRelatedInfo gives you nothing to go on if they don&#8217;t work when you first try to use them.  I&#8217;m implementing an optional debug mode for these functions, which I&#8217;ll roll out to other functions over time.  It&#8217;ll let you know if you&#8217;re doing something obviously wrong at first, like calling the function with an invalid option.</li>
<li><strong>New functionality </strong>– Many of you have asked that I make SPCascadeDropdowns work for multi-select lookup columns, and I&#8217;m putting that functionality into this release.</li>
<li><strong>Added functions – </strong>I&#8217;ve been talked about SPAuditScripts for quite a while, but I haven&#8217;t gotten it done.  With this library comes a responsibility to help with management of its usage.  The SPAuditScripts function will help you do that by telling you where you or others are using script in Content Editor Web Parts (CEWPs).  I&#8217;ll have at least an initial version of this function in the release.</li>
<li><strong>Tighter code and efficiency in the existing functions</strong> – As with most code, the first iteration isn&#8217;t always the best one.  By learning from current usage, I&#8217;m aiming to get some better code in place on some of the key functions.</li>
<li><strong>Bug fixes</strong> – See the list in the <a href="http://spservices.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34865" target="_blank">Release Notes</a>.</li>
</ul>
<p>This release will be bigger and take longer than my early iterations; the first releases often had only days between them.  Now that there are so many of you out there actually using the darn thing, I owe it to you to be taking a more thorough and careful approach to new enhancements, especially those which impact existing functionality.  That said, if you&#8217;d like to be on the beta testing team, drop me a line through the <a href="http://spservices.codeplex.com" target="_blank">library&#8217;s Codeplex site</a> or <a href="http://mdasblog.wordpress.com" target="_blank">my blog</a>.  You&#8217;ll get access to the new bits ahead of everyone else and can help make the library better and better for others.  If you do drop me a line, let me know a little about your background and goals; it&#8217;ll help me as well.  I&#8217;ll probably be reaching out to those of you who have had specific issues to try some new bits out for me to get your feedback as well.</p>
<p>Finally, I&#8217;m doing all this because I love it, but several of you have indicated that you&#8217;d be willing and interested in contributing to the effort monetarily.  (The offer of French Fries was even better!)  I&#8217;m looking into how I can rig something up so that you can contribute to an organization that means a lot to me instead.  Watch for details on that in the upcoming days or weeks.  I do work for a living, of course, so also consider <a href="http://www.sympraxisconsulting.com" target="_blank">Sympraxis Consulting</a> for your next SharePoint project.  We&#8217;ve got a pretty good toolkit.</p>
 Tagged: jQuery, jQuery library for SharePoint Web Services, SharePoint, SharePoint Designer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11033/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11033/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11033/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11033/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11033/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11033/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11033/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11033/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11033/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11033/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11033&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=lmILh9JQIFg:zerHFjfhOn4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/lmILh9JQIFg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/11/01/jquery-library-for-sharepoint-web-services-interim-update-on-whats-coming-up-in-v0-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/11/01/jquery-library-for-sharepoint-web-services-interim-update-on-whats-coming-up-in-v0-5-0/</feedburner:origLink></item>
		<item>
		<title>A jQuery Library for SharePoint Web Services (WSS 3.0 and MOSS): Part 2 – How Does It Work?</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/YwddcKFOC-4/</link>
		<comments>http://mdasblog.wordpress.com/2009/10/28/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-part-2-how-does-it-work/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 02:59:11 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery library for SharePoint Web Services]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11021</guid>
		<description><![CDATA[Cross posted from EndUserSharePoint.com&#8230;
In my last post, I wrote about why I decided to start building the jQuery Library for SharePoint Web Services. In this post, I’ll tell you a bit about what’s there and how it works. If you’re totally familiar with the SharePoint Web Services, this may all be old hat to you, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11021&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cross posted from <a href="http://www.endusersharepoint.com/2009/10/28/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-part-2-how-does-it-work/" target="_blank">EndUserSharePoint.com</a>&#8230;</p>
<p><img class="alignleft size-full wp-image-11031" title="WebServices" src="http://mdasblog.files.wordpress.com/2009/10/webservices.gif?w=200&#038;h=209" alt="WebServices" width="200" height="209" />In my <a href="http://www.endusersharepoint.com/2009/10/15/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-why-and-why-now"><strong>last post</strong></a>, I wrote about why I decided to start building the <a href="http://spservices.codeplex.com/"><strong>jQuery Library for SharePoint Web Services</strong></a>. In this post, I’ll tell you a bit about what’s there and how it works. If you’re totally familiar with the SharePoint Web Services, this may all be old hat to you, but I felt it would be useful to explain some of the underlying concepts in what I think of as “English” for those who might get something out of it.</p>
<p>As I’ve mentioned, the fundamental idea for the library was to “wrap” the key SharePoint Web Services which would allow you to talk to SharePoint in real time without full page refreshes. As I looked across the Web Services, I saw clear patterns in how they were called (and some glaring exceptions). The patterns meant that I could do some nice generalizing in my jQuery code. The “core” of the <a href="http://spservices.codeplex.com/"><strong>jQuery Library for SharePoint Web Services</strong></a> is the <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices"><strong>$().SPServices</strong></a> function, which allows you to simply call each Web Service operation.</p>
<p>There is a set of Web Services which are available in WSS 3.0 and MOSS, and then some that are only available in MOSS. The table below shows the Web Services currently available in the library and where they work, along with links to the MSDN documentation:</p>
<table>
<tbody>
<tr>
<th>Web Service</th>
<th>WSS 3.0</th>
<th>MOSS</th>
<th>MSDN Documentation</th>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Alerts&amp;referringTitle=%24%28%29.SPServices">Alerts</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/alerts.aspx">Alerts Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Authentication&amp;referringTitle=%24%28%29.SPServices">Authentication</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/authentication.aspx">Authentication Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Forms&amp;referringTitle=%24%28%29.SPServices">Forms</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/forms.aspx">Forms Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Lists&amp;referringTitle=%24%28%29.SPServices">Lists</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/lists.aspx">Lists Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Permissions&amp;referringTitle=%24%28%29.SPServices">Permissions</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/permissions.aspx">Permissions Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Users%20and%20Groups&amp;referringTitle=%24%28%29.SPServices">Users and Groups</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/ms772647.aspx">Users and Groups Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Versions&amp;referringTitle=%24%28%29.SPServices">Versions</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/ms772545.aspx">Versions Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Views&amp;referringTitle=%24%28%29.SPServices">Views</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/views.aspx">Views Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=WebPartPages&amp;referringTitle=%24%28%29.SPServices">WebPartPages</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/ms774569.aspx">Web Part Pages Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Webs&amp;referringTitle=%24%28%29.SPServices">Webs</a></strong></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/webs.aspx">Webs Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=PublishedLinksService&amp;referringTitle=%24%28%29.SPServices">PublishedLinksService</a></strong></td>
<td> </td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/aa981003.aspx">PublishedLinksService Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Search&amp;referringTitle=%24%28%29.SPServices">Search</a></strong></td>
<td> </td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/search.aspx">Search Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=UserProfileService&amp;referringTitle=%24%28%29.SPServices">UserProfileService</a></strong></td>
<td> </td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/aa981571.aspx">User Profile Web Service</a></td>
</tr>
<tr>
<td><strong><a href="http://spservices.codeplex.com/wikipage?title=Workflow&amp;referringTitle=%24%28%29.SPServices">Workflow</a></strong></td>
<td> </td>
<td style="text-align:center;"><img src="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" alt="" /></td>
<td><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/aa981383.aspx">Workflow Web Service</a></td>
</tr>
</tbody>
</table>
<p>I haven’t tried to wrap every single Web Service or every single operation of each. I’ve focused on the Web Services and operations that seemed as if they would provide the most benefit the most often. If I’ve missed something that would be of use to you, then by all means let me know by dropping a comment into the <a href="http://spservices.codeplex.com/Thread/List.aspx"><strong>Discussions on the Codeplex site</strong></a>. I’d be happy to add it in the next release.</p>
<p>Each Web Service is called with a <a href="http://en.wikipedia.org/wiki/SOAP"><strong>Simple Object Access Protocol (SOAP)</strong></a> Envelope which contains information about what you want to accomplish in the SOAP Body. As an example, here’s what the SOAP call for the Lists Web Service’s GetList operation looks like:</p>
<pre class="brush: jscript;">&lt;xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  &lt;soap:Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;  xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;  xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;
  &lt;soap:Body&gt;
  &lt;GetList  xmlns=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot;&gt;
   &lt;listName&gt;string&lt;/listName&gt;
   &lt;/GetList&gt;
   &lt;/soap:Body&gt;
  &lt;/soap:Envelope&gt;</pre>
<p>You can see what the SOAP call for any of the SharePoint Web Services needs to look like by going to /_vti_bin/[WebService].asmx. You can tack this onto the end of any URL within SharePoint. Here are a couple of examples:</p>
<ul>
<li>
<pre>http://servername/_vti_bin/lists.asmx</pre>
</li>
<li>
<pre>http://servername/sitepath/_vti_bin/workflow.asmx</pre>
</li>
</ul>
<p>On those pages, you’ll see what operations are available, and clicking on any of the operation links will show you the SOAP request and response structures. I’ve stared at most of these a lot so that you don’t really have to.</p>
<h3>Building the SOAP Request</h3>
<p>The SOAP Envelope and SOAP Body “wrappers” are the same for all of the SharePoint Web Services. Think of this wrapper as saying “I’m going to speak SOAP to you.” In my library, I store these wrappers in the SOAPEnvelope.header and SOAPEnvelope.footer variables:</p>
<pre class="brush: jscript;">SOAPEnvelope.header = &quot;&lt;soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'&gt;&lt;soap:Body&gt;&quot;;
SOAPEnvelope.footer = &quot;&lt;/soap:Body&gt;&lt;/soap:Envelope&gt;&quot;;</pre>
<p>Next comes what I call the SOAPEnvelope.opheader, or Operation Header. The Operation Header varies based on what operation you want to use. For the most part, the structure of the Operation Header is consistent for all of the operations within a Web Service, but there are a few exceptions. (Naughty developers.) The Operation Header tells the specific Web Service what operation you want to have a chat with.</p>
<p>We also need to have a SOAPAction, which is passed ahead of the request. In the case of the GetList operation above, it looks like this:</p>
<pre>http://schemas.microsoft.com/sharepoint/soap/GetList</pre>
<p>The SOAPAction is also generally consistent within a Web Service, but not always. (Naughty developers again.)</p>
<p>Finally, we get to what I call the SOAPEnvelope.payload. This is where you pass in the real data that you want to use to talk to the Web Service. In the GetList example above, the payload simply contains the listName, which can be either the text name of the list (e.g., States) or the GUID for the list (e.g., 8BADF8E2-3758-4D1B-9966-045F4A77F73D).</p>
<h3>The AJAX Call</h3>
<p>Based on what operation you pass into the SPServices function of the library, it builds up the appropriate SOAP call and uses it “talk” to the Web Service using <a href="http://en.wikipedia.org/wiki/Ajax_(programming)"><strong>AJAX (shorthand for Asynchronous JavaScript and XML)</strong></a>. The AJAX call is amazingly simple:</p>
<pre class="brush: jscript;">$.ajax({
   url: ajaxURL, // The relative URL for the  AJAX call
   async: opt.async, // By default, the AJAX calls are  asynchronous. You can specify false to  require a synchronous call.
   beforeSend: function  (xhr) { // Before sending the msg, need  to send the request header with the SOAPAction
     xhr.setRequestHeader(&quot;SOAPAction&quot;,  SOAPAction);
   },
   type: &quot;POST&quot;, // This is a POST
   data: msg, // Here is the SOAP request  we've built above
   dataType:  &quot;xml&quot;, // We're  sending XML
   contentType:  &quot;text/xml; charset='utf-8'&quot;, //  and this is its content type
   complete:  opt.completefunc // When the call is  complete, do this
});</pre>
<h3>Calling the Library</h3>
<p>To set things up to use the <a href="http://spservices.codeplex.com/"><strong>jQuery Library for SharePoint Web Services</strong></a>, you’ll need to add references to it and the <a href="http://jquery.com"><strong>core jQuery library</strong></a> in the right context for what you are trying to accomplish. This may mean that you add the references in your master page (if you are going to use jQuery pervasively), in a page layout (if only a certain class of pages will utilize jQuery), or in specific pages (if you want to use some of the functions only on a list’s forms, for example). These references will look something like this:</p>
<pre class="brush: jscript;">&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;/jQuery%20Libraries/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;/jQuery%20Libraries/jquery.SPServices-0.4.1.min.js&quot;&gt;&lt;/script&gt;</pre>
<p>I recommend putting both .js files into a Document Library in the root of your Site Collection called something like “jQuery Libraries”, as above. This way, you can manage them as content. For deployment purposes, you may want to use a generic name for the current version you are using so that you won’t need to update every reference every time you upgrade the .js files:</p>
<pre class="brush: jscript;">&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;/jQuery%20Libraries/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;/jQuery%20Libraries/jquery.SPServices-latest.min.js&quot;&gt;&lt;/script&gt;</pre>
<p>What all this adds up to is that you can use the <a href="http://spservices.codeplex.com/"><strong>jQuery Library for SharePoint Web Services</strong></a> to call any of the Web Service operations it wraps as simply as this:</p>
<pre class="brush: jscript;">$().SPServices({
   operation:  &quot;GetList&quot;,
   listName:  &quot;States&quot;,
   completefunc: function  (xData, Status) {
     ...do something...
   }
});</pre>
<p>which is a whole lot easier and efficient than trying to decipher all of the SOAP and AJAX requirements for each operation every time.</p>
<p>You can also pass in some optional options:</p>
<ul>
<li><strong>WebURL</strong> — If you pass in a Web URL, then that context is used for the ajaxURL in the AJAX call above. If you don’t pass in a WebURL, the current context is used. (The current context is determined by a call to the WebUrlFromPageUrl operation of the Webs Web Service. This is exposed as the public function <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPGetCurrentSite&amp;referringTitle=Documentation"><strong>$().SPServices.SPGetCurrentSite</strong></a>, as it can be a little tricky to determine the current site otherwise.) The WebURL is only useful in the case where the context matters to the result, and this is indicated in the library’s <a href="http://spservices.codeplex.com/documentation"><strong>Documentation</strong></a>.</li>
<li>
<pre>async — [true | false], as described above</pre>
</li>
</ul>
<p>One important caveat: a lot of people and blog posts will tell you to simply drop jQuery into Content Editor Web Parts (CEWPs). I’m not saying that this is always a bad idea, but it will make keeping track of your jQuery usage pretty difficult. I recommend using SharePoint Designer to put the jQuery into the pages them selves. This allows you to use whatever deployment mechanisms you already have in place for customized (unghosted) pages and also eliminates the possibility that a user will delete or change the jQuery in the CEWPs inadvertently.</p>
<p>I’m working on a function called SPAuditScript which will let you get a report of script usage in CEWPs across a Site Collection. This ought to help with keeping track of things as well as allay some of the fears that IT folks have about non-developers doing developer-like things without any way to track it.</p>
<h3>The Results</h3>
<p>When you make one of these calls, you get back XML, just as you’ve passed XML into it. As I was building the library, I found that I very often wanted to see what was in that XML in an easy to read format, so I built the <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPDebugXMLHttpResult"><strong>$().SPServices.SPDebugXMLHttpResult</strong></a> function. If you’re comfortable with XML and debugging tools, you may never need this function, but I find it useful. If you wanted to use it in the above example, replace the completefunc with this:</p>
<pre class="brush: jscript;">completefunc: function (xData, Status) {
   var out =  $().SPServices.SPDebugXMLHttpResult({
     node:  xData.responseXML
   });
   $(divId).html(&quot;&quot;).append(&quot;&lt;b&gt;This  is the output from the GetList operation:&lt;/b&gt;&quot; + out);
}</pre>
<p>where divId is the ID for a DIV on the calling page where you’d like to place the results. The output from the <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPDebugXMLHttpResult"><strong>$().SPServices.SPDebugXMLHttpResult</strong></a> function for GetList will look something like this excerpt:</p>
<p style="text-align:center;"><img class="aligncenter" src="http://mdasblog.files.wordpress.com/2009/10/2009-10-27-jquerylibraryforwebservices-part02-01.png" alt="jQuery Library for SP Web Services" /></p>
<p>On the other hand, if you’d like to work with the output, you’d probably do something like this:</p>
<pre class="brush: jscript;">$().SPServices({
   operation:  &quot;GetList&quot;,
   async: false,
   webURL: opt.webURL,
   listName:  opt.listName,
   completefunc:  function(xData, Status) {
     $(xData.responseXML).find(&quot;Field&quot;).each(function()  {
       if($(this).attr(&quot;StaticName&quot;)  == opt.columnStaticName) displayName = $(this).attr(&quot;DisplayName&quot;);
     });
   }
});</pre>
<p>This example comes from the <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPSPGetDisplayFromStatic"><strong>$().SPServices.SPGetDisplayFromStatic</strong></a> function. In the completefunc, I find all of the Field elements, iterate through them until I find the one I’m looking for, then grab the DisplayName attribute to return. I’m not going to go into a jQuery tutorial here, but working with the XML SOAP response is often about this simple.</p>
<h3>Conclusion</h3>
<p>So all of this (hopefully) explains what happens when you use the <a href="http://spservices.codeplex.com/"><strong>jQuery Library for SharePoint Web Services</strong></a> function <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPDebugXMLHttpResult"><strong>$().SPServices</strong></a> to call a Web Service operation. Any one of these Web Service operations can let you do some spiffy stuff, but to me the real power comes in utilizing one or more operations together to accomplish cool things. For instance, the <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPCascadeDropdowns&amp;referringTitle=Documentation"><strong>$().SPServices.SPCascadeDropdowns</strong></a> function uses GetListItem, <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPLookupAddNew&amp;referringTitle=Documentation"><strong>$().SPServices.SPLookupAddNew</strong></a> uses GetList (2x) and GetFormCollection, and so on.</p>
<p>In my next post, I’ll write about the other functions in the SPServices namespace and how you can use them to improve the user experience in SharePoint.</p>
 Tagged: jQuery, jQuery library for SharePoint Web Services, SharePoint, SharePoint Designer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11021/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11021/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11021/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11021/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11021/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11021/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11021/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11021/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11021/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11021/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11021&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=YwddcKFOC-4:vT18iW2U0Dg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/YwddcKFOC-4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/10/28/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-part-2-how-does-it-work/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/10/webservices.gif" medium="image">
			<media:title type="html">WebServices</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/09/chkmrk.gif" medium="image" />

		<media:content url="http://mdasblog.files.wordpress.com/2009/10/2009-10-27-jquerylibraryforwebservices-part02-01.png" medium="image">
			<media:title type="html">jQuery Library for SP Web Services</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/10/28/a-jquery-library-for-sharepoint-web-services-wss-3-0-and-moss-part-2-how-does-it-work/</feedburner:origLink></item>
		<item>
		<title>SPCascadingDropdowns Demystified (or Mystified, Depending on Your View)</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/9MIUGYOo8BY/</link>
		<comments>http://mdasblog.wordpress.com/2009/10/28/spcascadingdropdowns-demystified-or-mystified-depending-on-your-view/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 02:44:39 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery library for SharePoint Web Services]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/2009/10/28/spcascadingdropdowns-demystified-or-mystified-depending-on-your-view/</guid>
		<description><![CDATA[In my&#160; jQuery Library for SharePoint Web Services, one of the most popular functions is $().SPServices.SPCascadeDropdowns.&#160; The SPCascadeDropdowns function lets you set up cascading dropdowns on SharePoint forms. What this means is that you can enforce hierarchical relationships between column values.&#160; This is sometimes called connected dropdowns or linked dropdowns (or probably other things I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11020&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In my&#160; <a href="http://spservices.codeplex.com/">jQuery Library for SharePoint Web Services</a>, one of the most popular functions is <a href="http://spservices.codeplex.com/wikipage?title=%24%28%29.SPServices.SPCascadeDropdowns&amp;referringTitle=Documentation" target="_blank">$().SPServices.SPCascadeDropdowns</a>.&#160; The SPCascadeDropdowns function lets you set up cascading dropdowns on SharePoint forms. What this means is that you can enforce hierarchical relationships between column values.&#160; This is sometimes called connected dropdowns or linked dropdowns (or probably other things I haven&#8217;t run across yet).</p>
<p>The function uses the GetListItems operation of the Lists Web Service to refresh the allowable values based on relationships which are maintained in reference lists. By implementing this function, you can remove all of the coding requirements to manage the hierarchical relationships (once it is in place) and let your users manage the content.</p>
<p>The requirement that the values be stored in a list seems to baffle many people, as do the basic steps to use the function.&#160; I&#8217;m not dissing anyone here.&#160; I know that there are people using this stuff who don&#8217;t have a development background.&#160; I see that is a Really Good Thing, and is one of the reasons I&#8217;ve implemented the functions in the library the way I have.&#160; But what it can mean is that the underlying concepts may be downright foreign.</p>
<p>Here are some explanations of the most common things I see people struggling with.&#160; I&#8217;m going to add these ideas into the documentation, of course, but I thought a blog post might be a good idea, too, as some of these ideas apply in general.</p>
<ul>
<li>The src attribute in &lt;script src=&quot;../../jQuery%20Libraries/jquery-1.3.2.js&quot;&gt;&lt;/script&gt; should point to where <strong>*you*</strong> put the .js files.&#160; You can store them anywhere that makes sense for your needs.&#160; To reiterate my suggestion in the documentation: I recommend putting them into a Document Library in the root of your Site Collection called something like <strong>jQuery Libraries</strong>. However, they can be stored anywhere as long as all users who need to access them have read permissions. </li>
<li><strong>relationshipListParentColumn</strong> and <strong>relationshipListChildColumn</strong> should be the internal name (also known as the <strong>StaticName</strong>) for the columns in the relationshipList.&#160; <strong>parentColumn</strong> and <strong>childColumn</strong> should be the <strong>DisplayNames</strong> for the columns on the form.
<ul>
<li>When you first create a column in a list, the name which you give the column becomes the <strong>StaticName</strong>. </li>
<li>The <strong>StaticName</strong> is encoded, meaning that certain characters are replaced with a set of characters which represent their ASCII value.&#160; So if you name a column <strong>Product Description</strong>, the <strong>StaticName</strong> will be <strong>Product_x0020_Description</strong>. <strong>Terms &amp; Conditions</strong> becomes <strong>Terms_x0020__x0026__x0020_Condit</strong>.&#160; _x0020_ = space (&quot; &quot;), _x0026_ = ampersand (&quot;&amp;&quot;), etc.</li>
<li>As you can see from the <strong>Terms &amp; Conditions</strong> example above, the <strong>StaticName</strong> is limited to 32 characters, <strong><em>including the encoded values</em></strong>.</li>
<li>If you aren&#8217;t sure what the StaticName for a column is, go into <strong>List Settings</strong>, click on the column name in the <strong>Columns</strong> section, and look at the URL.&#160; At the end of the URL, you&#8217;ll see a Query String parameter called <strong>Field</strong>: <em>&amp;Field=Lead%5Fx0020%5FSource</em>.&#160; The string after the = sign is the <strong>StaticName</strong>, in this case <strong>Lead_x0020_Source</strong>.&#160; The <em>%5F</em> values are the underscores (&quot;_&quot;_ encoded for the URL.&#160; I know this can be confusing if you aren&#8217;t familiar with these concepts. </li>
<li>If you subsequently change the column name (like renaming <strong>Title</strong> to <strong>Failure</strong>), the <strong>StaticName</strong> stays static (does not change), but the <strong>DisplayName</strong> does change. </li>
<li>One of the dangers of this is that a column is renamed several times and ends up being used for something entirely different than its original intent.&#160; Because of this, it&#8217;s often better to delete a column and add a new one than renaming it. </li>
</ul>
</li>
<li>Don&#8217;t create the lists to drive the cascading dropdowns <strong>*only*</strong> to drive the cascading dropdowns.&#160; These lists are the best practice way to manage the choices that are available to a user in list columns.&#160; This is a key concept way beyond the cascading dropdowns idea:
<ul>
<li>Things like <strong>States</strong> or <strong>Regions</strong> or <strong>Products</strong> or <strong>Parts</strong> ought to be created as <strong>Site Columns</strong> in the root of your Site Collection which are lookups into lists and then used everywhere in the Site Collection you need them. </li>
<li>Because the choices are stored in a list, you can manage them as content as opposed to as settings, applying content management rules or workflows, as needed. </li>
<li>Since the values are stored in one place, a change in the list ripples out to every list or library where the <strong>Site Column</strong> is used.&#160; This is an incredibly powerful capability in SharePoint that is totally underused and ensures information uniformity and a good information architecture. </li>
<li>By taking advantage of this capability, you can begin to enforce a common taxonomy of concepts which apply across the organization.&#160; Rather than calling <strong>Product 12345</strong> the <strong>Blue Widget</strong> and the <strong>Left Screwed Thing</strong> and the <strong>One that J&amp;J Buys</strong>, we can all call it <strong>Product 12345</strong> and understand what we are all talking about.</li>
</ul>
</li>
</ul>
 Tagged: jQuery, jQuery library for SharePoint Web Services, SharePoint <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11020/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11020/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11020/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11020/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11020/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11020/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11020/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11020/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11020/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11020/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11020&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=9MIUGYOo8BY:tqL_sK4g6-I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/9MIUGYOo8BY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/10/28/spcascadingdropdowns-demystified-or-mystified-depending-on-your-view/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/10/28/spcascadingdropdowns-demystified-or-mystified-depending-on-your-view/</feedburner:origLink></item>
		<item>
		<title>The Customer’s Always Right – Except When They Aren’t</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/LmAg_3S4ANQ/</link>
		<comments>http://mdasblog.wordpress.com/2009/10/28/the-customers-always-right-except-when-they-arent/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:28:53 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11018</guid>
		<description><![CDATA[I was asked via an email from this blog to look at a thread in the MSDN SharePoint &#8211; Design and Customization forum today.  Of course, I was curious and headed right over there.  Here&#8217;s the basic question (there&#8217;s lots more detail in the thread):
My problem precisely and concisely is that I get tasked (A Must-Requirement) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11018&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was asked via an email from this blog to look at a <a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/60e8247d-58ab-41f4-90a2-1e274003032e?prof=required" target="_blank">thread</a> in the MSDN <a title="SharePoint - Design and Customization" href="http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/threads">SharePoint &#8211; Design and Customization</a> forum today.  Of course, I was curious and headed right over there.  Here&#8217;s the basic question (there&#8217;s lots more detail in the thread):</p>
<blockquote><p>My problem precisely and concisely is that I get tasked (A Must-Requirement) to offer the client the ability to select a customized CSS class for each single web part individually in order to be applied. The selection MUST be via the Browser: means that the user will pick whatever CSS class suits him/ her from the properties of that particular web part and clicks OK, then Bam! That particular web part will get the new style.</p></blockquote>
<p>and my answer:</p>
<blockquote><p>Not having been involved in the discussions with the actual users, I can&#8217;t speak to why they feel that this is a useful requirement.  Perhaps coming up with a set of page layouts that represent the normal range of options for them with each Web Part Zone having a specific set of CSS applied to it is the right middle ground.  Rather than trying to solve the &#8220;we might want to do anthing&#8221; problem, see if you can identify the most common patterns and solve those.  Then you can deal with the exceptions as they arise, which is likely to be infrequent.</p></blockquote>
<p>I see this sort of thing in the forums a lot.  These &#8220;absolute requirements&#8221; that the users won&#8217;t budge on.  Well, as IT Professionals (or whatever we choose to call ourselves) we owe it to those same clients to sometimes point out that they may be wrong in their estimation of their requirements.  With an infinite amount of time and money, I can make a computer do anything you want, including marrying your daughter and making a perfect Bolognese sauce.  But that&#8217;s not realistic, is it?</p>
<p>One of the problems we get into with SharePoint or any other development platform is that we tend to say &#8220;Sure&#8221; or &#8220;No&#8221; too much.  There&#8217;s a lot of room in the middle: &#8220;That might work, but have you thought about&#8230;&#8221;, &#8220;What if we&#8230;&#8221;,  &#8220;I&#8217;ll throw in this feature because it&#8217;s easy, but let&#8217;s talk through your options on this other one&#8230;&#8221;, etc.  I work with clients who still approach SharePoint with an old-school mentality, and by the time the SharePoint experts are truly involved in the conversation, the requirements are already way out of whack.  We can get them back on track, but it takes more work and it can be painful for those users who think they had already arrived at the answers.</p>
<p>Build a trusting relationship with the user base, help them solve their problems in creative ways, and you&#8217;ll be able to have these &#8220;you may be wrong about this&#8221; discussions more easily.  You owe it to them, and they will succeed more completely due to your efforts.</p>
 Tagged: Development, SharePoint <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11018/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11018&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=LmAg_3S4ANQ:0obYxM2lq7c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/LmAg_3S4ANQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/10/28/the-customers-always-right-except-when-they-arent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/10/28/the-customers-always-right-except-when-they-arent/</feedburner:origLink></item>
		<item>
		<title>Finding Date/Time Columns on the Page with g_strDateTimeControlIDs</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/kAEgZR-14Bw/</link>
		<comments>http://mdasblog.wordpress.com/2009/10/22/finding-datetime-columns-on-the-page-with-g_strdatetimecontrolids/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:14:22 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Date Picker]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11009</guid>
		<description><![CDATA[I ran across an interesting little trick in some code I&#8217;m working on today.  As usual, not my code, someone else&#8217;s that I&#8217;m trying to decipher and fix.
One thing that they are doing is sort of slick.  There&#8217;s apparently an array created by the datepicker.js JavaScript called g_strDateTimeControlID which is populated with the IDs for all of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11009&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I ran across an interesting little trick in some code I&#8217;m working on today.  As usual, not my code, someone else&#8217;s that I&#8217;m trying to decipher and fix.</p>
<p>One thing that they are doing is sort of slick.  There&#8217;s apparently an array created by the datepicker.js JavaScript called g_strDateTimeControlID which is populated with the IDs for all of the date input fields on the page which utilize the Date Picker. (I did some Binging, and there are only 4 references to g_strDateTimeControlID that I found.)  The little calendar icon below is the Date Picker:</p>
<p><img class="aligncenter size-full wp-image-11011" title="DatePicker" src="http://mdasblog.files.wordpress.com/2009/10/datepicker.jpg?w=365&#038;h=29" alt="DatePicker" width="365" height="29" /></p>
<p>You can use the g_strDateTimeControlIDs array like this:</p>
<pre class="brush: jscript;">var eventDateID = g_strDateTimeControlIDs[&quot;SPEventDate&quot;];
document.getElementById(eventDateID).value = date;</pre>
<p>Note the &#8216;SP&#8217; ahead of the column name.</p>
<p>That&#8217;s certainly simpler than writing your own JavaScript/jQuery to find the control, and makes it easy to set the date value, whether it be from a Query String value or some calculation.  Because the array is constructed and used by the Date Picker, so it should be available on the page where ever the Date Picker is seen.</p>
 Tagged: Date Picker, SharePoint, SharePoint Designer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11009/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11009/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11009/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11009/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11009/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11009/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11009/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11009/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11009/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11009/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11009&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=kAEgZR-14Bw:KG3uah7GQJ0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/kAEgZR-14Bw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/10/22/finding-datetime-columns-on-the-page-with-g_strdatetimecontrolids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>

		<media:content url="http://mdasblog.files.wordpress.com/2009/10/datepicker.jpg" medium="image">
			<media:title type="html">DatePicker</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/10/22/finding-datetime-columns-on-the-page-with-g_strdatetimecontrolids/</feedburner:origLink></item>
		<item>
		<title>Passing a Source Parameter on the Query String with Multiple Other Parameters</title>
		<link>http://feedproxy.google.com/~r/MarcDAndersonsBlog/~3/xO7Jc3pNznA/</link>
		<comments>http://mdasblog.wordpress.com/2009/10/20/passing-a-source-parameter-on-the-query-string-with-multiple-other-parameters/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:16:58 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Query String]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://mdasblog.wordpress.com/?p=11004</guid>
		<description><![CDATA[I&#8217;ve posted on similar tricks to this in the past, but this little trick is really helpful and worth calling out on its own.  Say that you&#8217;d like to pass a Source parameter on the query String, as SharePoint often does for you:
http://servername/sites/sitename/Lists/MyList/EditForm.aspx?ID=275&#38;Source=http://servername/sites/sitename/default.aspx
Simple, and you see it all the time as you navigate around in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11004&subd=mdasblog&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve posted on similar tricks to this in the past, but this little trick is really helpful and worth calling out on its own.  Say that you&#8217;d like to pass a Source parameter on the query String, as SharePoint often does for you:</p>
<p><code>http://servername/sites/sitename/Lists/MyList/EditForm.aspx?ID=275&amp;Source=http://servername/sites/sitename/default.aspx</code></p>
<p>Simple, and you see it all the time as you navigate around in SharePoint. In many cases, you&#8217;d also like to pass additional parameters that will &#8220;travel along&#8221; with the Source parameter.  The trick for this is to simply encode the ampersand (&amp;) character so that it won&#8217;t be treated as the start of a new Query String parameter, but instead just a part of the Source parameter. The ASCII value for the ampersand is 26 in hex, so you encode it as %26 in the URL:</p>
<p><code>http://servername/sites/sitename/Lists/MyList/EditForm.aspx?ID=275&amp;Source=/sites/sitename/default.aspx?ProjectID=123%26Boolean=0%26EmployeeID=345</code></p>
<p>Note that I&#8217;m passing in the relative URL for the default.aspx page.  Get into the habit of using relative URLs all the time and you&#8217;ll be in much better shape in general.</p>
<p>With the above URL, when you are finished with the EditForm.aspx page, whether by clicking OK or Cancel, you&#8217;ll be redirected to:</p>
<p><code>http://servername/sites/sitename/default.aspx?ProjectID=123&amp;Boolean=0&amp;EmployeeID=345</code></p>
 Tagged: Query String, SharePoint, SharePoint Designer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdasblog.wordpress.com/11004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdasblog.wordpress.com/11004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdasblog.wordpress.com/11004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdasblog.wordpress.com/11004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdasblog.wordpress.com/11004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdasblog.wordpress.com/11004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdasblog.wordpress.com/11004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdasblog.wordpress.com/11004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdasblog.wordpress.com/11004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdasblog.wordpress.com/11004/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdasblog.wordpress.com&blog=6074836&post=11004&subd=mdasblog&ref=&feed=1" /></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?a=xO7Jc3pNznA:oO7wGEW4Fu4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MarcDAndersonsBlog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MarcDAndersonsBlog/~4/xO7Jc3pNznA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mdasblog.wordpress.com/2009/10/20/passing-a-source-parameter-on-the-query-string-with-multiple-other-parameters/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/152629bd7ea49737f9a5efea442619b5?s=96&amp;d=identicon" medium="image">
			<media:title type="html">Marc</media:title>
		</media:content>
	<feedburner:origLink>http://mdasblog.wordpress.com/2009/10/20/passing-a-source-parameter-on-the-query-string-with-multiple-other-parameters/</feedburner:origLink></item>
	</channel>
</rss>
