<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>Zuker On Foundations</title><link>http://blogs.windowsclient.net/zuker/default.aspx</link><description>The realm of .NET (WPF, WCF and all around)</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20423.869)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Zuker" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Wcf Contrib v2 - New Release - August 2009</title><link>http://blogs.windowsclient.net/zuker/archive/2009/08/07/wcf-contrib-v2-new-release-august-2009.aspx</link><pubDate>Thu, 06 Aug 2009 22:16:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:251949</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=251949</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/08/07/wcf-contrib-v2-new-release-august-2009.aspx#comments</comments><description>&lt;p&gt;It&amp;#39;s been ages since my last post, I feel so bad about it.&lt;br /&gt;I&amp;#39;ve been swamped at work, I hope I will get the blogging frenzy again soon :)&lt;/p&gt;&lt;p&gt;Don&amp;#39;t forget this is my old blog though! I post here only on WcfContrib, for my new blog make sure you visit my &lt;a href="http://blogs.microsoft.co.il/blogs/zuker/"&gt;current blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m very glad to announce a new release of &lt;a href="http://wcfcontrib.codeplex.com/"&gt;WcfContrib&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;New stuff:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Client Channel - Closes channels asynchronously after invoking O/W operations (Check the post &lt;a href="http://blogs.microsoft.co.il/blogs/zuker/archive/2009/06/20/wcf-oneway-abort-or-not.aspx"&gt;WCF OneWay - Abort or Not&lt;/a&gt; regarding why) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Service Extensions - Mocking &amp;amp; Tracing with the ability to trigger from the client side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Configuration-less Services&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Integrated Endpoint and Binding Boosting - Service and Client side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Enhanced Helpers&lt;br /&gt;&lt;br /&gt;Go have a look, recommended :)&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=251949" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/RTWSs4Jase0" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WcfContrib/default.aspx">WcfContrib</category></item><item><title>WCF Contrib - A new release, May 2009</title><link>http://blogs.windowsclient.net/zuker/archive/2009/05/03/wcf-contrib-a-new-release-may-2009.aspx</link><pubDate>Sat, 02 May 2009 22:26:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:152887</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=152887</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/05/03/wcf-contrib-a-new-release-may-2009.aspx#comments</comments><description>&lt;p&gt;This release delivers a better packaged assembly.&lt;br /&gt;XML documentation was added, showcases don&amp;#39;t require password for compiling the solution (because of the key file)&lt;br /&gt;&lt;br /&gt;Context extensions were added - Session and Call carried items similar to ASP.NET.&lt;/p&gt;&lt;p&gt;&lt;a href="http://wcfcontrib.codeplex.com"&gt;Wcf Contrib &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=152887" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/gz5oXFCDM4M" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WCF/default.aspx">WCF</category></item><item><title>WCF Contrib - Packaging</title><link>http://blogs.windowsclient.net/zuker/archive/2009/04/30/wcf-contrib-packaging.aspx</link><pubDate>Thu, 30 Apr 2009 06:22:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:150197</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=150197</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/04/30/wcf-contrib-packaging.aspx#comments</comments><description>There was a problem with the zipped archive with the showcases (In the &lt;a class="" href="http://wcfcontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=26636"&gt;Downloads&lt;/a&gt; section)&lt;br /&gt;It was fixed, please download it again if you wish. &lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=150197" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/uryCmxLsYIQ" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WCF/default.aspx">WCF</category></item><item><title>WCF Contrib</title><link>http://blogs.windowsclient.net/zuker/archive/2009/04/26/wcf-contrib.aspx</link><pubDate>Sat, 25 Apr 2009 22:00:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:145370</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=145370</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/04/26/wcf-contrib.aspx#comments</comments><description>&lt;p&gt;I no longer update this blog, blog has moved &lt;a href="http://blogs.microsoft.co.il/blogs/zuker/"&gt;Here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I decided to post here also about the release of &lt;a href="http://wcfcontrib.codeplex.com/"&gt;WCF Contrib&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are a log of useful extensions and components for you to use with WCF communications, be sure to check it out.&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a lot to come in future releases too.&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=145370" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/stCYGhZlVcE" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Blog has Moved!</title><link>http://blogs.windowsclient.net/zuker/archive/2009/01/15/blog-has-moved.aspx</link><pubDate>Thu, 15 Jan 2009 14:12:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:99124</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=99124</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/01/15/blog-has-moved.aspx#comments</comments><description>&lt;p&gt;My blog has moved! &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please invest a couple of minutes to update your feed subscription.&lt;/p&gt;&lt;p&gt;The new location:&lt;br /&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/zuker/"&gt;http://blogs.microsoft.co.il/blogs/zuker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Syndication link: &lt;a href="http://feeds.feedburner.com/ZukerOnFoundationsMs"&gt;http://feeds.feedburner.com/ZukerOnFoundationsMs&lt;/a&gt;&lt;/p&gt;&lt;p&gt;See you there ;) &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=99124" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/oPlAsmEQl3s" height="1" width="1"/&gt;</description></item><item><title>SQL Reporting Services - Query Report Server</title><link>http://blogs.windowsclient.net/zuker/archive/2009/01/11/sql-reporting-services-query-report-server.aspx</link><pubDate>Sun, 11 Jan 2009 15:11:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:97994</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=97994</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/01/11/sql-reporting-services-query-report-server.aspx#comments</comments><description>&lt;p&gt;It took me quite a while to find a proper example of how to communicate with SQL Reporting Services in order to execute a specific report, I though I might share it.&lt;/p&gt;&lt;p&gt;We have Report Server 2008 installed over SQL Server 2005.&lt;br /&gt;I needed to extract data of a specific report in runtime (desired output in my case - XML).&lt;/p&gt;&lt;p&gt;I found 2 suitable ways of doing so:&lt;/p&gt;&lt;p&gt;&lt;b&gt;1) Use ReportExecution2005 Service&lt;/b&gt;&lt;/p&gt;&lt;p&gt;SQL Reporting Services include the following:&lt;/p&gt;&lt;p&gt;&lt;u&gt;ReportService2005&lt;/u&gt; - A service which exposes the realm of the entire reports&lt;br /&gt;&lt;u&gt;ReportService2006&lt;/u&gt; - Represents the SharePoint integration mode&lt;/p&gt;&lt;p&gt;&lt;u&gt;ReportExecution2005&lt;/u&gt; - A service used to execute reports - my main focus. &lt;/p&gt;&lt;p&gt;TalkWithWs() method in the attached project illustrates the use of the ReportExecution2005 service. &lt;/p&gt;&lt;p&gt;&lt;b&gt;2) Use the Report Server ReportViewer page directly&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This is a very easy way to extract the data.&lt;/p&gt;&lt;p&gt;I could extract any report&amp;#39;s data through the ReportViewer page, E.g.&lt;br /&gt;http://&amp;lt;Server&amp;gt;/&amp;lt;ReportServer Instance&amp;gt;/Pages/ReportViewer.aspx?%2fSandBox%2fadv_testforAmir&amp;amp;rs:Command=Render&amp;amp;rs:Format=xml&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This will yield the XML data for the following report path: /SandBox/adv_testforAmir&lt;/p&gt;&lt;p&gt;Very clean and handy.&lt;/p&gt;&lt;p&gt;This mechanism also support parameters (through the QueryString) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;The source code is attached.&lt;br /&gt;In order to view the attached files, make sure you enter the specifc post page.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=97994" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/I27QwmgA6cg" height="1" width="1"/&gt;</description><enclosure url="http://blogs.windowsclient.net/zuker/attachment/97994.ashx" length="746893" type="application/x-zip-compressed" /><category domain="http://blogs.windowsclient.net/zuker/archive/tags/Database/default.aspx">Database</category></item><item><title>WPF Popups and ToolTip Behavior - Implementation</title><link>http://blogs.windowsclient.net/zuker/archive/2009/01/11/wpf-popups-and-tooltip-behavior-implementation.aspx</link><pubDate>Sun, 11 Jan 2009 13:24:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:97981</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=97981</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/01/11/wpf-popups-and-tooltip-behavior-implementation.aspx#comments</comments><description>&lt;p&gt;In continuation to my first post -&lt;br /&gt;&lt;a href="http://blogs.windowsclient.net/zuker/archive/2009/01/07/wpf-popups-and-tooltip-behavior-a-journey.aspx"&gt;WPF Popups and ToolTip behavior - A Journey&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I decided to approach the implementation of such a popup like the ToolTip and ContextMenu are doing it themselves.&lt;br /&gt;I did not inherit from Popup but rather created my own control and I used the Popup.CreateRootPopup which sets the Popup.Child property to my control and it picks up on all the ToolTipService properties defined on my control.&lt;/p&gt;&lt;p&gt;I started from reading the following post:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/wpfsdk/archive/2007/04/27/popup-your-control.aspx"&gt;Popup your control&lt;/a&gt;&lt;/p&gt;&lt;p&gt;There were some problems with this pattern though, I had to overcome these with quite many event hooking which I&amp;#39;m not very happy about. At least it works for now :)&lt;/p&gt;&lt;p&gt;There is a way to improve the implementation, I could use mouse capturing but that introduced another set of problems so I left it as it is for the time being. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;I will post my solution soon enough. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=97981" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/xspsyHNQkB4" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WPF/default.aspx">WPF</category></item><item><title>LINQ to XML - XElement - Descendants vs. Elements</title><link>http://blogs.windowsclient.net/zuker/archive/2009/01/11/linq-to-xml-xelement-descendants-vs-elements.aspx</link><pubDate>Sun, 11 Jan 2009 13:18:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:97979</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=97979</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/01/11/linq-to-xml-xelement-descendants-vs-elements.aspx#comments</comments><description>&lt;p&gt;Someone asked me what the difference between descendants and elements is, I thought I&amp;#39;d post the details here for common interest.&lt;/p&gt;&lt;p&gt;Descendants will yield you elements of your choice from the entire source element sub-tree, whereas Elements will yield the child elements only.&lt;/p&gt;&lt;p&gt;E.g.&lt;/p&gt;&lt;p&gt;&amp;nbsp;string xml = @&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Root&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Items&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;5&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;6&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Items&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;4&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Root&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDocument doc1 = XDocument.Parse(xml);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var q1 = from e in doc1.Root.Descendants(&amp;quot;Item&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select e;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var q2 = from e in doc1.Root.Elements(&amp;quot;Item&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select e;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c1 = q1.Count(); //6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c2 = q2.Count(); //4&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=97979" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/GkcFyBYiwBc" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>WPF Popups and ToolTip behavior - A Journey</title><link>http://blogs.windowsclient.net/zuker/archive/2009/01/07/wpf-popups-and-tooltip-behavior-a-journey.aspx</link><pubDate>Wed, 07 Jan 2009 10:04:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:96917</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=96917</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2009/01/07/wpf-popups-and-tooltip-behavior-a-journey.aspx#comments</comments><description>&lt;p&gt;I am currently working on a WPF project which I needed a ToolTip with a certain behavior:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;It should act like a ToolTip &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Support content template&lt;/li&gt;&lt;li&gt;Appear upon hovering with a small interval&lt;/li&gt;&lt;li&gt;Appear once - hovering another element with a tooltip should hide the last shown tooltip.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Support Rich Content&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The latter is marked as bold since that was the essential requirement that made me not use the ordinary WPF ToolTip.&lt;/p&gt;&lt;p&gt;I needed the ToolTip to hold rich content - such as clickable buttons.&lt;br /&gt;This also implicates that I wanted the ToolTip to remain shown until either one of the following&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The window was moved/size changed&lt;/li&gt;&lt;li&gt;The window was deactivated (E.g. Alt+Tab)&lt;/li&gt;&lt;li&gt;A click was made outside the boundary of the shown tooltip&lt;/li&gt;&lt;li&gt;Otherwise - Keep being shown! - Unsupported by the built-in ToolTip.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I went over and examined my possibilities along with my close friend &lt;a href="http://arbel.net/blog/"&gt;Aelij Arbel&lt;/a&gt; who worked together  with me on this.&lt;br /&gt;The options we were considering are as follows:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1) Built-in ToolTip - As indicated above - unsuitable.&lt;/p&gt;&lt;p&gt;2) Context Menu - The behavior I was looking for resembled the Context-Menu behavior, so I thought about perhaps I could template the Context menu to look like I wanted and try to change it&amp;#39;s core Right-Click functionality but it turned out to be quite complicated and I&amp;#39;m unsure it&amp;#39;s possible.&lt;/p&gt;&lt;p&gt;3) Use Popup - Popup is a great thing. It allows you to place content apart from the window Visual Tree - floating.&lt;br /&gt;It supports most of the ToolTip placement properties which I needed - Let the popup control the placement positioning, take a lot of pain off my back.&lt;/p&gt;&lt;p&gt;Obviously, the third way appeared to be the best way to go.&lt;/p&gt;&lt;p&gt;Good news - Popups did do the trick I needed. However, they wouldn&amp;#39;t work properly in some cases.&lt;br /&gt;Unfortunately, bad news - It didn&amp;#39;t in my case.&lt;/p&gt;&lt;p&gt;I attached a project sample showing some behavior disfunctions in the Popup, just so you see for yourself there are issues with that.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;That was the starting point of my journey - I was going to create such RichToolTipPopup behavior that would be supported in every case!&lt;/p&gt;&lt;p&gt;I will post about my solution in the following days.&lt;br /&gt;&lt;br /&gt;In order to view the attached files, make sure you enter the specifc post page.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=96917" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/fjL3k0lU2co" height="1" width="1"/&gt;</description><enclosure url="http://blogs.windowsclient.net/zuker/attachment/96917.ashx" length="55444" type="application/x-zip-compressed" /><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WPF/default.aspx">WPF</category></item><item><title>The MetadataExchangeClient has resolved more than MaximumResolvedReferences</title><link>http://blogs.windowsclient.net/zuker/archive/2008/12/30/the-metadataexchangeclient-has-resolved-more-than-maximumresolvedreferences.aspx</link><pubDate>Tue, 30 Dec 2008 09:28:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:95091</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=95091</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/12/30/the-metadataexchangeclient-has-resolved-more-than-maximumresolvedreferences.aspx#comments</comments><description>&lt;p&gt;This error was resulted in a specific scenario where I tried to pull a service metadata using .NET MetadataExchangeClient.&lt;/p&gt;&lt;p&gt;The reason was that the metadata consisted with more metadata references than the limit defined on my MEXClient instance. (The default is 10)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Solution - Increase the limit.&lt;/p&gt;&lt;p&gt;MetadataExchangeClient mexClient = new MetadataExchangeClient();&lt;br /&gt;&lt;b&gt;mexClient.MaximumResolvedReferences = MaximumResolvedReferences; //some constant&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=95091" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/GFL0BrdnGPM" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/SOA/default.aspx">SOA</category></item><item><title>PyBinding MarkupExtension: use Python statements for Data Binding</title><link>http://blogs.windowsclient.net/zuker/archive/2008/12/29/pybinding-markupextension-use-python-statements-for-data-binding.aspx</link><pubDate>Mon, 29 Dec 2008 07:56:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:94815</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=94815</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/12/29/pybinding-markupextension-use-python-statements-for-data-binding.aspx#comments</comments><description>&lt;p&gt;A very nice extension built for WPF, Read the full details &lt;a href="http://blog.pixelingene.com/?p=340"&gt;Here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;E.g. -&lt;/p&gt;&lt;p&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Polyline&lt;/span&gt; &lt;span class="attr"&gt;Points&lt;/span&gt;=&amp;quot;{ln:PyBinding PointCollection([Point(p.Time,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p.Value * &lt;strong&gt;&lt;font color="#ff0000"&gt;$(Container.ActualHeight)&lt;/font&gt;&lt;/strong&gt;)&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for p in &lt;strong&gt;&lt;font color="#ff0000"&gt;$(.MarketData.DataPoints)&lt;/font&gt;&lt;/strong&gt;])}&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stroke&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;IndianRed&amp;quot;&lt;/span&gt;      &lt;span class="attr"&gt;StrokeThickness&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Very cool! &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=94815" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/6AhKynAIf7E" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WPF/default.aspx">WPF</category></item><item><title>NDepend</title><link>http://blogs.windowsclient.net/zuker/archive/2008/12/24/ndepend.aspx</link><pubDate>Wed, 24 Dec 2008 10:18:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:93990</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=93990</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/12/24/ndepend.aspx#comments</comments><description>&lt;p&gt;I finally had the chance to look into the &lt;a href="http://www.ndepend.com/"&gt;NDepend&lt;/a&gt; tool.&lt;/p&gt;&lt;p&gt;In short:&lt;/p&gt;&lt;p&gt;&amp;quot;&lt;i&gt;NDepend is a tool that simplifies managing a complex .NET code base. Architects and developers can analyze code structure, specify design rules, plan massive refactoring, do effective code reviews and master evolution by comparing different versions of the code.&lt;/i&gt;&amp;quot;&lt;/p&gt;&lt;p&gt;I decided to NDepend a component assembly written in our project - the output was very cool.&lt;br /&gt;I was able to see the analyzing reports. There&amp;#39;s a lot of information exposed there.&lt;/p&gt;&lt;p&gt;You can use that tool to extract practical development practices and potential improvements that should be made.&lt;br /&gt;Moreover, you can use CQL (Code Query Language) to execute queries against the actual code and examine whatever you wish, sweet!&lt;/p&gt;&lt;p&gt;To sum things up, my experience with the tool had been very positive and I do see potential usage in utilizing development practices with this tool.&lt;/p&gt;&lt;p&gt;Very cool &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=93990" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/v_h56YithL4" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Making Ajax calls to server using PageMethods and Session_End</title><link>http://blogs.windowsclient.net/zuker/archive/2008/12/21/making-ajax-calls-to-server-using-pagemethods-and-session-end.aspx</link><pubDate>Sun, 21 Dec 2008 13:36:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:93293</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=93293</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/12/21/making-ajax-calls-to-server-using-pagemethods-and-session-end.aspx#comments</comments><description>&lt;p&gt;We were working on a project where there was used the ajax pattern of PageMethods in order to call to the server.&lt;/p&gt;&lt;p&gt;We experienced a weird behavior where calling the operation marked as WebMethod (required to be called as part of the PageMethods) caused weird occurrences in the Session_End global event handler.&lt;/p&gt;&lt;p&gt;After dwelling into it, we found that the issue was solved once we enabled the session state in the WebMethod attribute.&lt;/p&gt;&lt;p&gt;I thought it might be worth sharing. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=93293" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/Y0eo5CfaFlU" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/Web/default.aspx">Web</category></item><item><title>Enabling cross-domain calls for Silverlight on self-hosted WCF services</title><link>http://blogs.windowsclient.net/zuker/archive/2008/12/08/enabling-cross-domain-calls-for-silverlight-on-self-hosted-wcf-services.aspx</link><pubDate>Mon, 08 Dec 2008 05:53:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:89581</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=89581</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/12/08/enabling-cross-domain-calls-for-silverlight-on-self-hosted-wcf-services.aspx#comments</comments><description>&lt;p&gt;Read the full details &lt;a class="" href="http://blogs.msdn.com/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx"&gt;Here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Carlos came up with an elegant way to enable cross domain calls from silverlight to self hosted WCF service.&lt;/p&gt;
&lt;p&gt;Such calls requires the server to allow cross site scripting which is done by placing a settings XML file in the web site root.&lt;br /&gt;But what about the cases where you self host a service in a process and you&amp;#39;re not in the context of a web site root?&lt;/p&gt;
&lt;p&gt;Well, that&amp;#39;s what the post is about.&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=89581" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/-LjgZYthhEY" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/WCF/default.aspx">WCF</category></item><item><title>UpdatePanels, RadioButtons, UpdateProgresses and AutoPostBacks</title><link>http://blogs.windowsclient.net/zuker/archive/2008/11/27/updatepanels-radiobuttons-updateprogresses-and-autopostbacks.aspx</link><pubDate>Thu, 27 Nov 2008 13:37:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:87098</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.windowsclient.net/zuker/rsscomments.aspx?PostID=87098</wfw:commentRss><comments>http://blogs.windowsclient.net/zuker/archive/2008/11/27/updatepanels-radiobuttons-updateprogresses-and-autopostbacks.aspx#comments</comments><description>&lt;h1 style="text-align:justify;"&gt;&lt;span style="font-size:12pt;line-height:115%;"&gt;(or,
why my RadioButton which has AutoPostBack=”true” actually doesn’t display my UpdateProgress
or even perform a PostBack at all?!)&lt;/span&gt;&amp;nbsp;&lt;/h1&gt;

&lt;p&gt;My fellow colleague Yitzhak Steinmetz has been playing around with Ajax capabilities and controls.&lt;/p&gt;&lt;p&gt;He came across some interesting scenarios, I was allowed to post his details here in my blog, so here it is:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;While writing a webpage, I ran
into an interesting (gently phrased) quirk with ASP.NET AJAX.&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;To simplify the problem, imagine
the following scenario:&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;I have 2 RadioButtons, an
UpdatePanel, and an UpdateProgress on a page. The RadioButtons are outside the
UpdatePanel, but are supposed to trigger a partial PostBack of the UpdatePanel,
and of course display the UpdateProgress.&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;My code (relevant parts) looks
like this:&lt;/p&gt;

&lt;h2 style="text-align:justify;"&gt;Defauls.aspx.cs&lt;/h2&gt;







&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:justify;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;protected&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt;
sender, &lt;span&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsPostBack)&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Thread&lt;/span&gt;.Sleep(3000);&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:justify;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.lblTime.Text
= &lt;span&gt;DateTime&lt;/span&gt;.Now.ToLongTimeString();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;h2 style="text-align:justify;"&gt;Defauls.aspx&lt;/h2&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;ScriptManager&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;RadioButton&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btn1&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;GroupName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyGroup1&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;AutoPostBack&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;Checked&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;RadioButton&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btn2&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;GroupName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyGroup1&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;AutoPostBack&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;
&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;UpdateProgress&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyUpdateProgress&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;AssociatedUpdatePanelID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyUpdatePanel&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;ProgressTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Loading&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;h1&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;ProgressTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;UpdateProgress&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;UpdatePanel&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyUpdatePanel&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;ChildrenAsTriggers&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;UpdateMode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Conditional&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span&gt;Label&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;lblTime&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span&gt;AsyncPostBackTrigger&lt;/span&gt; &lt;span style="color:red;"&gt;ControlID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btn1&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;EventName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CheckedChanged&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span&gt;AsyncPostBackTrigger&lt;/span&gt;
&lt;span style="color:red;"&gt;ControlID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btn2&amp;quot;&lt;/span&gt;
&lt;span style="color:red;"&gt;EventName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CheckedChanged&amp;quot;&lt;/span&gt;
&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;UpdatePanel&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Run
this code and you’ll see a few unexpected behaviours:&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;The UpdatePanel&lt;span&gt; performs a partial a PostBack only when clicking the
second RadioButton and the &lt;/span&gt;UpdateProgress is never displayed (even when
we do perform a partial PostBack).&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Clicking
the second RadioButton, we see that after 3 seconds the time on the page chages.
If now we click the first RadioButton, nothing happens, and if we click the
second RadioButton again, nothing happens.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Removing
the &lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:red;"&gt;Checked&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span&gt; from the first RadioButton solves the PostBack issue,
but still doesn’t display the UpdateProgress. This isn’t really a solution,
since we want the RadioButton to be checked when the page initlaly loads.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;In
come smarx.com with a simple, yet annoying solution (the annoying part isn’t
their fault &lt;/span&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Adding
the following code to your page (with minor relevant changes) will display the
UpdatePanel correctly (If adding this script the way it is doesn’t work, try
adding a handler for OnLoad of the &amp;lt;body&amp;gt; element and pasting it in
there):&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:maroon;"&gt;script&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;
&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(&lt;span style="color:blue;"&gt;function&lt;/span&gt;(sender, args)&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;var&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; postBackElementID =
args.get_postBackElement().id;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; (postBackElementID == &lt;span&gt;&amp;#39;&amp;lt;%=
this.btn1.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$find(&lt;span&gt;&amp;#39;&amp;lt;%= this.uprogPageContents.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;).get_element().style.display
= &lt;span&gt;&amp;#39;block&amp;#39;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt; (postBackElementID == &lt;span&gt;&amp;#39;&amp;lt;%=
this.btn2.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;))&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$find(&lt;span&gt;&amp;#39;&amp;lt;%= this.uprogPageContents.ClientID %&amp;gt;&amp;#39;&lt;/span&gt;).get_element().style.display
= &lt;span&gt;&amp;#39;block&amp;#39;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:maroon;"&gt;script&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;&amp;nbsp;&lt;br /&gt;This
solution solves the UpdatePanel issue, but still doesn’t solve the issue with
the first RadioButton not posting back to the server.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;After
much research and a few conults, the only solution I found to this issue is moving
both RadioButtons into the UpdatePanel (you can give up on the earlier
mentioned handler if you implement this).&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Please
note that the second solution is needed only in the case of a RadioButton
outside of the UpdatePanel. If you have a different control outside the
UpdatePanel (a button for instance), you can leave it where it is and simply
add the script mentioned in the first solution.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;I
know this solution isn’t perfect, but it’s the best I could find.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;If
you can do better, please leave a comment.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;P.S.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;Credit
should be given to 2 posts which set me on the path to the solutions (I
recommend reading them for further understanding):&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;&lt;a href="http://smarx.com/posts/why-the-updateprogress-wont-display.aspx"&gt;The
UpdateProgress solution&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span&gt;&lt;a href="http://menacestudio.com/blog/post/AJAX-and-radio-buttons-non-postback-issue-fixed%21.aspx"&gt;The
AutoPostBack solution&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;



&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=87098" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/Zuker/~4/igsBbLSgHOc" height="1" width="1"/&gt;</description><category domain="http://blogs.windowsclient.net/zuker/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.windowsclient.net/zuker/archive/tags/Web/default.aspx">Web</category></item></channel></rss>
