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

<channel>
	<title>Dave Russell &#187; Ajax</title>
	<atom:link href="http://daverussell.co.za/wordpress/category/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://daverussell.co.za/wordpress</link>
	<description>Helping me remember and hopefully helping others at the same time.</description>
	<lastBuildDate>Thu, 14 Apr 2011 07:16:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Showing the loading icon when jQuery is waiting for a response</title>
		<link>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/</link>
		<comments>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:39:04 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=90</guid>
		<description><![CDATA[Here&#8217;s a very simple method of putting an overlay on the page when you are making an asynchronous call using $.ajax. As the page does not refresh, you need to alert your user that work is actually been done and that they cannot interact with the page until you have finished The css: .lightbox_bg { [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a very simple method of putting an overlay on the page when you are making an asynchronous call using $.ajax. As the page does not refresh, you need to alert your user that work is actually been done and that they cannot interact with the page until you have finished</p>
<p>The css:</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;">.lightbox_bg {<br />
&nbsp; &nbsp; &nbsp; &nbsp; background:#ffffff none repeat scroll 0 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:800px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; left:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; filter:alpha(opacity=50);<br />
&nbsp; &nbsp; &nbsp; &nbsp; opacity: 0.5;<br />
&nbsp; &nbsp; &nbsp; &nbsp; top:0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; z-index:1110;<br />
&nbsp; &nbsp; &nbsp; &nbsp; display:none;<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:fixed;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; .modal{<br />
&nbsp; &nbsp; &nbsp; &nbsp; position:absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; left:45%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; top:45%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; z-index:1111;<br />
&nbsp; &nbsp; &nbsp; &nbsp; width:32px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; height:32px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; background:url(/image/of/your/choice.gif) #fff 50% 50% no-repeat;}</div>
</div>
<p>The javascript:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">$<span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStart</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;&lt;div /&gt;&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;lightbox_bg&#8217;</span><span class="br0">&#41;</span>.<span class="me1">appendTo</span><span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;&lt;div /&gt;&#8217;</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&#8216;modal&#8217;</span><span class="br0">&#41;</span>.<span class="me1">appendTo</span><span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;body&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStop</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;.lightbox_bg&#8217;</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;.modal&#8217;</span><span class="br0">&#41;</span>.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Thats it, now everytime you do your ajax magic the ajaxstart method will kick in and do its bit &#8211; then when its finished the ajaxstop method will remove the overlay.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/12/03/showing-the-loading-icon-when-jquery-is-waiting-for-a-response/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax using .Net and jQuery &#8211; Revised and improved with help from Json</title>
		<link>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/</link>
		<comments>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:26:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://daverussell.co.za/wordpress/?p=76</guid>
		<description><![CDATA[I previously wrote a post outlining a simpler method of making asynchronous calls with jQuery. It turns out that in practice that method was exactly that &#8211; too simple. It works fine when you only need one value back, but if you need to work with something a little more complex then try out my [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://daverussell.co.za/wordpress/2009/07/28/ajax-using-dotnet-and-jquery/">previously wrote a post</a> outlining a simpler method of making asynchronous calls with <a href="http://www.jquery.com">jQuery</a>. It turns out that in practice that method was exactly that &#8211; too simple. It works fine when you only need one value back, but if you need to work with something a little more complex then try out my new method that uses a <a href="http://json.org">JSON object</a>.  So the basic overview is as follows: </p>
<ol>
<li>create an object server-side on page load and add it to the DOM</li>
<li>populate the object using javascript</li>
<li>pass it back to a webservice using jquery&#8217;s ajax method and json</li>
<li>use the new object serverside and pass it back</li>
</ol>
<p>Ok, so lets get started by creating the object in your webservice:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">class</span> Person<br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Name <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> ContactNumber <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Description <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>Then in your page load you can inject this object into the DOM:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;">var objPerson <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Webservice.<span class="me1">Person</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
var js <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> JavaScriptSerializer<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
Page.<span class="me1">ClientScript</span>.<span class="me1">RegisterArrayDeclaration</span><span class="br0">&#40;</span><span class="st0">&quot;_person&quot;</span>, js.<span class="me1">Serialize</span><span class="br0">&#40;</span>objPerson<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Now you can use this object with javascript:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;">&#8230;</p>
<p><span class="kw2">function</span> AjaxMethodJSON<span class="br0">&#40;</span>serviceFn<span class="sy0">,</span> paramArray<span class="sy0">,</span> successFn<span class="sy0">,</span> errorFn<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; $.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; type<span class="sy0">:</span> <span class="st0">&quot;POST&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; url<span class="sy0">:</span> serviceFn<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; contentType<span class="sy0">:</span> <span class="st0">&quot;application/json; charset=utf-8&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; data<span class="sy0">:</span> <span class="st0">&quot;{&#8216;clientobject&#8217;:&quot;</span> <span class="sy0">+</span> JSON.<span class="me1">stringify</span><span class="br0">&#40;</span>paramArray<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;}&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dataType<span class="sy0">:</span> <span class="st0">&quot;json&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; success<span class="sy0">:</span> successFn<span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error<span class="sy0">:</span> errorFn<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><br />
<span class="sy0">;</span></p>
<p>&#8230;<br />
$<span class="br0">&#40;</span><span class="st0">&quot;#btnSubmit&quot;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="kw3">Name</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtName&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="me1">ContactNumber</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtContactNumber&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; objPerson.<span class="me1">Description</span> <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&#8216;#txtDescription&#8217;</span><span class="br0">&#41;</span>.<span class="me1">val</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; AjaxMethodJSON<span class="br0">&#40;</span><span class="st0">&quot;/webservices/Webservice.asmx/UpdatePerson&quot;</span><span class="sy0">,</span> objPerson<span class="sy0">,</span> AjaxSuccessStep<span class="sy0">,</span> AjaxFailed<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>If you have been paying attention you may be thinking &#8211; stringify? The official explanation from <a href="http://www.json.org/js.html">json.org</a>: If the stringify method sees an object that contains a toJSON method, it calls that method, and stringifies the value returned. This allows an object to determine its own JSON representation. So remember to add a reference to <a href="http://www.json.org/js.html">json2.js</a> upstream from this code.</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> AjaxSuccessStep<span class="br0">&#40;</span>result<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>result <span class="sy0">!=</span> <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> obj <span class="sy0">=</span> result.<span class="me1">d</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objPerson <span class="sy0">=</span> JSON.<span class="me1">parse</span><span class="br0">&#40;</span>obj<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//got the updated object back, now you can &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span class="co1">//do some more stuff with it</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>There you go. This works very well when you are stepping through a wizard and updating a few fields with each step.</p>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/12/03/ajax-using-net-and-jquery-revised-and-improved-with-help-from-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax using .Net and jQuery</title>
		<link>http://daverussell.co.za/wordpress/2009/07/28/ajax-using-dotnet-and-jquery/</link>
		<comments>http://daverussell.co.za/wordpress/2009/07/28/ajax-using-dotnet-and-jquery/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 11:50:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[less bloat]]></category>
		<category><![CDATA[more goodness]]></category>

		<guid isPermaLink="false">http://davidrussellr.wordpress.com/?p=34</guid>
		<description><![CDATA[I am not a fan of the classic method of implementing ajax in .net &#8211; scriptmanagers and updatepanels. The load on the front end is pretty big (100kb+), especially considering local bandwidth restrictions and challenges. So I set out to find a better way as one does when one feels that something is not quite [...]]]></description>
			<content:encoded><![CDATA[<p>I am not a fan of the classic method of implementing ajax in .net &#8211; scriptmanagers and updatepanels. The load on the front end is pretty big (100kb+), especially considering local bandwidth restrictions and challenges. So I set out to find a better way as one does when one feels that something is not quite right.</p>
<p>So it turns out that jQuery comes to the rescue &#8211; again.</p>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;"><span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;clickme1&quot;</span>&gt;</span>whats the time? (using code behind)<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;clickme2&quot;</span>&gt;</span>whats the time? (using a webservice)<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;result&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;border:1px solid red;padding:5px;&quot;</span>&gt;</span>nothing yet<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;/js/v4/jquery.132.min.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span> <span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;</span>// <span class="sc2">&lt;!<span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span></span><br />
<span class="sc2">function AjaxSucceeded<span class="br0">&#40;</span>result<span class="br0">&#41;</span> <span class="br0">&#123;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;#result&#8217;</span><span class="br0">&#41;</span>.html<span class="br0">&#40;</span><span class="st0">&quot;good &quot;</span> + result.d<span class="br0">&#41;</span>;<span class="br0">&#125;</span></span><br />
<span class="sc2">function AjaxFailed<span class="br0">&#40;</span>result<span class="br0">&#41;</span> <span class="br0">&#123;</span>$<span class="br0">&#40;</span><span class="st0">&#8216;#result&#8217;</span><span class="br0">&#41;</span>.html<span class="br0">&#40;</span><span class="st0">&quot;bad &quot;</span> + result.d<span class="br0">&#41;</span>;<span class="br0">&#125;</span></span></p>
<p><span class="sc2">function AjaxMethod<span class="br0">&#40;</span>serviceFn, paramArray, successFn, errorFn<span class="br0">&#41;</span> <span class="br0">&#123;</span></span><br />
<span class="sc2"> &nbsp; &nbsp;var paramList <span class="sy0">=</span> <span class="st0">&#8221;</span>;</span><br />
<span class="sc2"> &nbsp; &nbsp;if <span class="br0">&#40;</span>paramArray.length &gt;</span> 0) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i <span class="sc2">&lt; paramArray.length; i +<span class="sy0">=</span> <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if <span class="br0">&#40;</span>paramList.length &gt;</span> 0) paramList += &#8216;,&#8217;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paramList += &#8216;&quot;&#8217; + paramArray[i] + &#8216;&quot;:&quot;&#8217; + paramArray[i + 1] + &#8216;&quot;&#8217;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; paramList = &#8216;{&#8216; + paramList + &#8216;}&#8217;;</p>
<p>&nbsp; &nbsp; $.ajax({<br />
&nbsp; &nbsp; &nbsp; &nbsp; type: &quot;POST&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; url: serviceFn,<br />
&nbsp; &nbsp; &nbsp; &nbsp; contentType: &quot;application/json; charset=utf-8&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; data: paramList,<br />
&nbsp; &nbsp; &nbsp; &nbsp; dataType: &quot;json&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; success: successFn,<br />
&nbsp; &nbsp; &nbsp; &nbsp; error: errorFn<br />
&nbsp; &nbsp; })<br />
;}</p>
<p>$(document).ready(function() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(&#8216;#clickme2&#8242;).click(function() { AjaxMethod(&quot;/webservices/webservice.asmx/GetDate&quot;, [], AjaxSucceeded, AjaxFailed); });<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(&#8216;#clickme1&#8242;).click(function() { AjaxMethod(window.location.pathname + &quot;/GetDate&quot;, [], AjaxSucceeded, AjaxFailed); });<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
// ]]&gt;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span></div>
</div>
<p>Using a webservice (clickme2 event):</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="br0">&#91;</span>ScriptService<span class="br0">&#93;</span><br />
<span class="br0">&#91;</span>WebService<span class="br0">&#40;</span><span class="kw1">Namespace</span> <span class="sy0">=</span> <span class="st0">&quot;http://tempuri.org/&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="br0">&#91;</span>WebServiceBinding<span class="br0">&#40;</span>ConformsTo <span class="sy0">=</span> WsiProfiles.<span class="me1">BasicProfile1_1</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw4">class</span> WebService <span class="sy0">:</span> <span class="kw5">System.<span class="me1">Web</span>.<span class="me1">Services</span></span>.<span class="me1">WebService</span><br />
<span class="br0">&#123;</span><br />
<span class="br0">&#91;</span>WebMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw4">string</span> GetDate<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw1">return</span> DateTime.<span class="me1">Now</span>.<span class="me1">ToLocalTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>And the code behind  (clickme1 event)::</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="br0">&#91;</span>WebMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> GetDate<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw1">return</span> DateTime.<span class="me1">Now</span>.<span class="me1">ToLocalTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>And there you go &#8211; ajax functionality without the bloat. This code has yet to make it into the harsh light of a production environment, but I have successfully used it to return not just one value, but xml data too (see example below), which opens up huge possibilities for front end goodness. The method below makes use of caching which increases performance hugely, but that&#8217;s a topic for another day.</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="kw2">function</span> ShowMyPosts<span class="br0">&#40;</span>result<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw2">var</span> output <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span></p>
<p>$<span class="br0">&#40;</span>result.<span class="me1">d</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;item&#8217;</span><span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw2">var</span> title<span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">&#8216;title&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw2">var</span> link<span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;link&#8217;</span><span class="br0">&#41;</span>.<span class="me1">text</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
output <span class="sy0">+=</span> <span class="st0">&quot;<br />
&lt;div&gt;&quot;</span> <span class="sy0">+</span> title <span class="sy0">+</span> <span class="st0">&quot; : &quot;</span> <span class="sy0">+</span> title<span class="sy0">+</span> <span class="st0">&quot; : &quot;</span> <span class="sy0">+</span> link <span class="sy0">+</span> <span class="st0">&quot;&lt;/div&gt;<br />
&quot;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>$<span class="br0">&#40;</span><span class="st0">&#8216;#result&#8217;</span><span class="br0">&#41;</span>.<span class="me1">html</span><span class="br0">&#40;</span>output<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
$<span class="br0">&#40;</span><span class="st0">&#8216;#clickme3&#8242;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> AjaxMethod<span class="br0">&#40;</span>window.<span class="me1">location</span>.<span class="me1">pathname</span> <span class="sy0">+</span> <span class="st0">&quot;/GetXML&quot;</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="st0">&quot;url&quot;</span><span class="sy0">,</span> <span class="st0">&quot;http://davidrussellr.wordpress.com/feed/&quot;</span><span class="sy0">,</span> <span class="st0">&quot;cachename&quot;</span><span class="sy0">,</span> <span class="st0">&quot;test2&quot;</span><span class="br0">&#93;</span><span class="sy0">,</span> ShowMyPosts<span class="sy0">,</span> AjaxFailed<span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>And the code behind:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="br0">&#91;</span>WebMethod<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> GetXML<span class="br0">&#40;</span><span class="kw4">string</span> url, <span class="kw4">string</span> cachename<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
XmlDocument xmlDoc <span class="sy0">=</span> FetchXML.<span class="me1">ReturnXmlDoc</span><span class="br0">&#40;</span>url, cachename<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">return</span> xmlDoc.<span class="me1">InnerXml</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://daverussell.co.za/wordpress/2009/07/28/ajax-using-dotnet-and-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

