<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Jonas Bush</title>
        <link>http://geekswithblogs.net/jonasb/Default.aspx</link>
        <description>Blog.blog.blog.blog</description>
        <language>en-US</language>
        <copyright>Jonas Bush</copyright>
        <managingEditor>jonasbush@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Jonas Bush</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/jonasb/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Images being requested twice from the server</title>
            <category>SQL 2005</category>
            <link>http://geekswithblogs.net/jonasb/archive/2009/07/13/133462.aspx</link>
            <description>&lt;p&gt;&lt;font size="2" face="Verdana"&gt;*taptaptap* Is this thing on?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Verdana"&gt; I ran into an interesting bug recently, where you would get 2 identical requests to the page you were visiting. I wasn't sure where this was coming from, so I poked around a bit. It turns out that having an &lt;font face="Courier New"&gt;&amp;lt;img /&amp;gt;&lt;/font&gt; tag on a page with an empty src attribute (like so: &lt;font face="Courier New"&gt;&amp;lt;img src="" /&amp;gt;)&lt;/font&gt; causes that image tag to point to the containing page, causing the entire page to get requested again (causing any server-side code you may have to get executed again), but the response just gets thrown away, since the img tag is only expecting an image back from the server, not an HTML document. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Verdana"&gt;The way around this is to remove the src attribute altogether, and you can still set the image source through javascript.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133462"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133462" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/133462.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2009/07/13/133462.aspx</guid>
            <pubDate>Mon, 13 Jul 2009 16:55:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/133462.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2009/07/13/133462.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/133462.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/133462.aspx</trackback:ping>
        </item>
        <item>
            <title>Curly braces and string.Format()</title>
            <category>.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2007/03/05/108023.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Recently I was trying to use StringBuilder.AppendFormat to build some javascript, and was hit with an exception when trying to do this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;sb.AppendFormat("function {0}(args) { return false; }", someVariable);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The problem is that you can't have { or } inside an input string for string.Format(). The solution is actually fairly straightforward:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;sb.AppendFormat("function {0}(args) {{ return false; }}", someVariable);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Instead of using "\" as an escape character, you would use { or } (depending on what you want to escape).&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=108023"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=108023" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/108023.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2007/03/05/108023.aspx</guid>
            <pubDate>Mon, 05 Mar 2007 21:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/108023.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2007/03/05/108023.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/108023.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/108023.aspx</trackback:ping>
        </item>
        <item>
            <title>Triggering a validator through javscript</title>
            <category>ASP.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2007/01/29/104893.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In &lt;A href="http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx"&gt;this&lt;/A&gt;&amp;nbsp;post, I talked about enabling or disabling a validator client-side. Someone had commented asking how to change the status of a control from valid to invalid. The following javascript works at least for required field validators, I haven't tested it with anything else (but I imagine it should work just fine). Again, this is 2.0, I haven't tested this in 1.1:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;var myValidator = document.getElementById('&amp;lt;%=reqField.ClientID%&amp;gt;');&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;ValidatorValidate(myValidator);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For a required field validator at least, the causes the same actions as clicking on a button on the page.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hope this helps!&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104893"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104893" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/104893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2007/01/29/104893.aspx</guid>
            <pubDate>Mon, 29 Jan 2007 22:45:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/104893.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2007/01/29/104893.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/104893.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/104893.aspx</trackback:ping>
        </item>
        <item>
            <title>Using Atlas to act as a check on javascript calls</title>
            <category>ASP.Net</category>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/08/16/88185.aspx</link>
            <description>&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;One of the things I've been working on is how to use Atlas web services to verify actions on the server. So the client requests to perform a particular action on the server, and if they don't have access to perform that action or the action fails (because a database is down, or something along those lines), I don't want the method on the client to continue executing.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The problem with that is that Atlas web service calls are asynchronous by nature (explained &lt;A href="http://weblogs.asp.net/bleroy/archive/2005/12/01/432031.aspx"&gt;here&lt;/A&gt; and &lt;A href="http://weblogs.asp.net/bleroy/archive/2005/12/15/433278.aspx"&gt;here&lt;/A&gt;). So I can't say something like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;if(myService.myServiceCall() == true)&lt;BR&gt;{&lt;BR&gt;  //do stuff&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;What I've come up with is this javascript object:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;function&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; webServiceRunner(webServiceFunction, returnFunction, returnParams)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; _returnFunction = returnFunction;&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; _returnParams = returnParams;&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; _webServiceFunction = webServiceFunction;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;  this&lt;/FONT&gt;&lt;FONT size=2&gt;.runService = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;function&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;()&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;_webServiceFunction(onServiceComplete);&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;  function&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; onServiceComplete(result)&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;FONT size=2&gt; r = &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;'_returnFunction('&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;for&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; i = 0; i &lt; _returnParams.length; i++)&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;      &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;r += &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#ff0000 size=2&gt;'_returnParams['&lt;/FONT&gt;&lt;FONT size=2&gt; + i.toString() + &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;']'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;      &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(i &lt; returnParams.length - 1)&lt;BR&gt;        &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;r += &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;','&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;r += &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;', result);'&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT face="Courier New"&gt;//alert(r);&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;eval(r);&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;This takes advantage of some of the nice (and dangerous) features of Javascript, the &lt;FONT face="Courier New"&gt;eval()&lt;/FONT&gt; statement, the &lt;FONT face="Courier New"&gt;arguments&lt;/FONT&gt; object, and function pointers. &lt;FONT face="Courier New"&gt;Eval()&lt;/FONT&gt; will let you create a string, like &lt;FONT face="Courier New"&gt;var s = 'alert(&amp;#8220;hi&amp;#8220;);';&lt;/FONT&gt; - and then call &lt;FONT face="Courier New"&gt;eval(s);&lt;/FONT&gt; - the end result of which will be &amp;#8220;Hi&amp;#8220; showing up in an alert box. The &lt;FONT face="Courier New"&gt;arguments&lt;/FONT&gt; object is created automatically for you in javascript inside of any function, and contains an array of all the arguments passed into that function.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;So now I can instantiate and call this class like so:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#800000 size=2&gt;span&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;class&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="CommandLink"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;onclick&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="testOne(this);"&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Test&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;span&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;function&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; testOne(sender, result)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(result == undefined)&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;FONT size=2&gt; sr = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; webServiceRunner(TestWebService.HasAccess, testOne, arguments);&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;sr.runService();&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(result)&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;else&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;alert(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;'sorry, you are unable to perform that action'&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;);&lt;BR&gt;  &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Assuming I have a webservice defined, as well as the proper Atlas script manager setup: &lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;atlas&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;scriptmanager&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="scriptManager"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="server"&gt;&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;services&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&gt;&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;atlas&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;servicereference&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;path&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="TestWebService.asmx"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&gt;&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;services&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;atlas&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;scriptmanager&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#008080 size=2&gt;WebMethod&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; HasAccess()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;  &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;What ends up happening inside the webServiceRunner is that the following string will be created:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;_returnFunction(_returnParams[0], result);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Then that string is eval-ed, and my original testOne function is called, with the original sender object (from the original click), and the result parameter from the web service.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;If this is confusing, post a comment or send me an email and I'll try and elaborate further. If you think this is silly or useless, leave a comment and explain why. :)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=88185"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=88185" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/88185.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/08/16/88185.aspx</guid>
            <pubDate>Wed, 16 Aug 2006 21:48:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/88185.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/08/16/88185.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/88185.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/88185.aspx</trackback:ping>
        </item>
        <item>
            <title>Disabling an ASP.Net Validator through Javascript</title>
            <category>ASP.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;If you ever find yourself needing to selectively disable an asp.net validator through javascript, you can do the following (in 2.0, not sure if this exists in 1.x):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;function doSomething()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; var myVal = document.getElementById('myValidatorClientID');&lt;BR&gt;&amp;nbsp; ValidatorEnable(myVal, false);&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Quick and easy! Sadly, not as easy to find through Google, so hopefully this post will help that. :)&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=87708"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=87708" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/87708.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx</guid>
            <pubDate>Fri, 11 Aug 2006 15:57:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/87708.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx#feedback</comments>
            <slash:comments>55</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/87708.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/87708.aspx</trackback:ping>
        </item>
        <item>
            <title>Enabling/disabling asp.net checkboxes through javascript</title>
            <category>ASP.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/07/27/86498.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The problem:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;You want to have a web form with multiple checkboxes, and have some of them be enabled or disabled depending on whether a certain checkbox is checked (or radio button selected, or what have you).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;At first glance, this seems fairly simple; you can just do:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;%=myCheckBox.ClientID%&amp;gt;.disabled = false;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;in javascript.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The problem comes when you, on the server side, disable the checkbox by default. (NB: this pertains to ASP.Net 2.0, it may work differently in 1.x). The problem is that an &lt;FONT face="Courier New"&gt;&amp;lt;asp:checkbox /&amp;gt;&lt;/FONT&gt; control gets rendered out like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;span&amp;gt;&amp;lt;input type='checkbox'&amp;gt;&amp;lt;/span&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The &lt;U&gt;real&lt;/U&gt; problem comes when you have a checkbox like this: &lt;FONT face="Courier New"&gt;&amp;lt;asp:checkbox enabled=&amp;#8221;false&amp;#8221; /&amp;gt;&lt;/FONT&gt;. This gets rendered out like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;span disabled='disabled'&amp;gt;&amp;lt;input type='checkbox' disabled='disabled'&amp;gt;&amp;lt;/span&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Can you see the problem? In our javascript, when we enable the input, we're not enabling the surrounding span. As it happens, in FireFox, this doesn't seem to be an issue (the checkbox will be enabled as you would expect). In IE6, however, the checkbox will be disabled because the surrounding span is disabled.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;To get around this, you can do the following instead of saying &lt;FONT face="Courier New"&gt;myCheckBox.Enabled = false&lt;/FONT&gt; in your code-behind:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;myCheckBox.InputAttributes.Add(&amp;#8221;disabled&amp;#8221;, &amp;#8220;disabled&amp;#8221;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;(There's also a &amp;#8220;&lt;FONT face="Courier New"&gt;LabelAttributes&lt;/FONT&gt;&amp;#8221; property of the checkbox, if your control has text that you want to give attributes to explicitly).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hope this helps!&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=86498"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=86498" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/86498.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/07/27/86498.aspx</guid>
            <pubDate>Fri, 28 Jul 2006 05:10:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/86498.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/07/27/86498.aspx#feedback</comments>
            <slash:comments>46</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/86498.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/86498.aspx</trackback:ping>
        </item>
        <item>
            <title>Less than useful helpfiles, part 1</title>
            <category>ASP.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/05/09/77734.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In the helps for HtmlInputControl.Name (for .NET 2.0):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Gets or sets the unique identifier name for the &lt;/FONT&gt;&lt;A href="ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref14/html/T_System_Web_UI_HtmlControls_HtmlInputControl.htm"&gt;&lt;FONT face="Courier New" size=2&gt;HtmlInputControl&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New" size=2&gt; control. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Later on, in that same help file:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;In this implementation, the &lt;B&gt;get&lt;/B&gt; accessor returns the value of the &lt;B&gt;Control.UniqueID&lt;/B&gt; property. However, the &lt;B&gt;set&lt;/B&gt; accessor does not assign a value to this property.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So then why say that it sets the property, if it doesn't actually set the property?&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77734"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77734" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/77734.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/05/09/77734.aspx</guid>
            <pubDate>Tue, 09 May 2006 20:37:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/77734.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/05/09/77734.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/77734.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/77734.aspx</trackback:ping>
        </item>
        <item>
            <title>Repeaters, Checkboxes and UpdatePanels, Oh My!</title>
            <category>ASP.Net</category>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/05/08/77624.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I was working on some sample stuff that I'll be posting later and ran into a problem. I had 2 different update panels; inside one was just a div, inside the other one was a repeater. Inside the repeater I had a bunch of checkboxes, and when I checked/unchecked them, I needed the first update panel to be updated. This posed a couple of problems:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;A checkbox doesn't have a CommandName property, and can't be used to trigger a Repeater's ItemCommand event&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This I got around by declaring the event handler for the checkbox in the markup: &lt;FONT face="Courier New"&gt;OnCheckedChanged=&amp;#8221;myCB_OnCheckedChanged&amp;#8221;&lt;/FONT&gt;, and in the event handler I can cast the sender argument to a checkbox. The other problem:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;An UpdatePanel's list of triggers can't include a control that's inside a template&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Which means I can't say &lt;FONT face="Courier New"&gt;&amp;lt;atlas:ControlEventTrigger ControlID=&amp;#8221;myCB&amp;#8221; EventName=&amp;#8221;myCB_OnCheckedChanged&amp;#8221; /&amp;gt;&lt;/FONT&gt;, since myCB doesn't actually exist at runtime. Instead, in myCB_OnCheckedChanged, I can just say: &lt;FONT face="Courier New"&gt;updatePanel1.Update();&lt;/FONT&gt; and everything works fine.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hope this helps...&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77624"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77624" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/77624.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/05/08/77624.aspx</guid>
            <pubDate>Mon, 08 May 2006 21:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/77624.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/05/08/77624.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/77624.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/77624.aspx</trackback:ping>
        </item>
        <item>
            <title>Retrieivng data from XML inside SQL</title>
            <category>SQL 2005</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/05/03/77138.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Recently I had to retrieve some data from SQL that was tucked away inside XML. We have a &amp;#8220;Settings&amp;#8221; class inside our application that is a bunch of public properties, which we then serialize to XML to store inside the DB. This lets us easily add/remove fields to store without having to modify the database.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This can be a problem if you need to access those one of those field values from within SQL, but SQL 2005 provides some methods to do this (note that your data column must be the xml data type, I haven't found a way to get this to work by casting an ntext field to xml):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Providing your class looks like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;[XmlSerializable]&lt;BR&gt;public class GlobalSettings&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; [XmlElement]&lt;BR&gt;&amp;nbsp; public int SomeValue;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Then when serialized, your XML will look similar to this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;GlobalSettings&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;SomeValue&amp;gt;5&amp;lt;/SomeValue&amp;gt;&lt;BR&gt;&amp;lt;/GlobalSettings&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT face=Verdana&gt;In SQL Management studio, you can write this (assuming GlobalSettings is the table and GlobalSettingsXML is the column where this data is stored):&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;SELECT GlobalSettingsXML.query('(/GlobalSettings/SomeValue)') FROM GlobalSettings&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This will return:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;SomeValue&amp;gt;5&amp;lt;/SomeValue&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Which may not be as useful as we want. :) To get the actual value (5) from this, we need to use the value() function:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;SELECT GlobalSettingsXML.value('(/GlobalSettings/SomeValue)[1]', 'int') FROM GlobalSettings&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This will give us '5', cast to an int. Per the MSDN helps on value(), the [1] is required after your xpath expression because the expression is supposed to return a singleton. I'm not quite sure what that means or how the [1] denotes it, but it works (if you know, by all means tell me!).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hopefully this will be of use to you.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77138"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=77138" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/77138.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/05/03/77138.aspx</guid>
            <pubDate>Wed, 03 May 2006 20:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/77138.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/05/03/77138.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/77138.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/77138.aspx</trackback:ping>
        </item>
        <item>
            <title>Atlas and JSON</title>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/04/03/74196.aspx</link>
            <description>&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;I just finished up some code that uses some other functionality of atlas.&amp;nbsp; To sum up: Whoa! This may be available in AJAX.net or some of the other frameworks, but I was amazed at how easy this was:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;I have a web service that returns a class, like so:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;public class MyClass&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;{&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public string MyString;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; public int MyInt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;[WebMethod(true)]&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;public MyClass MyWebMethod()&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;{&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; //init MyClass here&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; MyClass myClass = new MyClass();&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; return myClass;&lt;BR&gt;}&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;the beauty of it is, I have access to those fields in my javascript:&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;function callWS()&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;{&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; MyWebService.MyWebMethod(onComplete);&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;function onComplete(result)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face="Courier New" size=2&gt;{&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; alert(result.MyString);&lt;BR&gt;}&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Very very very very cool :)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74196"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74196" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/74196.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/04/03/74196.aspx</guid>
            <pubDate>Mon, 03 Apr 2006 21:10:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/74196.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/04/03/74196.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/74196.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/74196.aspx</trackback:ping>
        </item>
        <item>
            <title>Custom Server Controls in 2.0</title>
            <category>ASP.Net</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/04/06/74504.aspx</link>
            <description>&lt;DIV class=ForumPostContentText id=_ctl0__ctl1_bcr__ctl0___PostRepeater__ctl7_PostViewWrapper&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Ahh the joys of learning new tech. :) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In 2.0, if you have a custom server control in your app_code directory, it &lt;STRONG&gt;must&lt;/STRONG&gt; have a namespace, and the register directive in&amp;nbsp;a page that uses that control&amp;nbsp;should look like this:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;%&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;@&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;register&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;namespace&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="TestWebControls"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;tagprefix&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="testControl"&lt;/FONT&gt;&lt;FONT size=2&gt; %&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;%&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;@&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;register&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;namespace&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="TestWebControls"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;tagprefix&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="testControl"&lt;/FONT&gt;&lt;FONT size=2&gt; %&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;And this would be the code in your App_Code folder:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;namespace&lt;/FONT&gt;&lt;FONT size=2&gt; TestWebControls&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; [&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ParseChildren&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&amp;nbsp; [&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;PersistChildren&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&amp;nbsp; [&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ToolboxData&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"&amp;lt;{0}:TestControl runat=\"server\""&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&amp;nbsp; [&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AspNetHostingPermission&lt;/FONT&gt;&lt;FONT size=2&gt;(System.Security.Permissions.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SecurityAction&lt;/FONT&gt;&lt;FONT size=2&gt;.Demand, Level = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AspNetHostingPermissionLevel&lt;/FONT&gt;&lt;FONT size=2&gt;.Minimal)]&lt;BR&gt;[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AspNetHostingPermission&lt;/FONT&gt;&lt;FONT size=2&gt;(System.Security.Permissions.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SecurityAction&lt;/FONT&gt;&lt;FONT size=2&gt;.InheritanceDemand, Level = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AspNetHostingPermissionLevel&lt;/FONT&gt;&lt;FONT size=2&gt;.Minimal)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;TestServerControl&lt;/FONT&gt;&lt;FONT size=2&gt; : System.Web.UI.WebControls.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;WebControl&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; &amp;nbsp; public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;override&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; RenderBeginTag(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;HtmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/FONT&gt;&lt;FONT size=2&gt;.AddAttributesToRender(writer);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.RenderBeginTag(&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;"div"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;override&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; RenderEndTag(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;HtmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; writer)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.RenderEndTag();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Then in your markup, you would have:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;testControl&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;TestServerControl&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;cssclass&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="Foo"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="foo1"&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="server"&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;inside&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/&lt; FONT&gt;&lt;FONT color=#800000 size=2&gt;testControl&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;TestServerControl&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face=Verdana color=#000000&gt;the "TestServerControl" name must match the name of the class of your custom server control (which I overlooked...whoops). You can also register the control in your web.config for ease of use in multiple pages:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face=Verdana color=#000000&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;system.web&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;pages&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;controls&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#800000 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;namespace&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;TestWebControls&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;tagPrefix&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;testControl&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt; /&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/&lt; FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#800000 size=2&gt;controls&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/&lt; FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#800000 size=2&gt;pages&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/&lt;FONT face="Courier New" color="#800000" size="2"&gt;&lt;/&lt;FONT color="#800000"&gt;system.web&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT face=Verdana color=#000000&gt;Since this control is only going to be used in this app, I don't need to put it in a separate dll. But if you do put it in a separate dll, all you need to add is the "assembly" attribute when registering your controls. Note that you can't add the control to your toolbox unless it's compiled into a separate dll.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74504"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=74504" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/74504.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/04/06/74504.aspx</guid>
            <pubDate>Thu, 06 Apr 2006 15:29:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/74504.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/04/06/74504.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/74504.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/74504.aspx</trackback:ping>
        </item>
        <item>
            <title>Success!</title>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/02/15/69634.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;After struggling with Atlas for awhile, we finally released our latest feature on &lt;A href="http://www.squeet.com"&gt;http://www.squeet.com&lt;/A&gt;. The new &amp;#8220;Preview&amp;#8220; functionality uses the Atlas UpdatePanel to display the 5 latest entries for any blog you enter. It will by default show only a summary of the item, but you can click on the &amp;#8220;expand&amp;#8220; link to show the full HTML content for the entry. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The UpdatePanel is surrounding a standard ASP.Net repeater control, which contains some LinkButtons. The UpdatePanel responds to the RowCommand event raised by the repeater, and all the code to handle the event is normal code-behind code. The Atlas portion of this portion was very easy to implement (once I got away from using the WebService calls directly, those don't seem to be fully mature yet).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG alt=preview src="/images/geekswithblogs_net/jonasb/3984/o_squeetpreview.PNG"&gt;&lt;/P&gt;

&lt;!-- whYjw35CIKHVZcb --&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69634"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69634" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/69634.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/02/15/69634.aspx</guid>
            <pubDate>Wed, 15 Feb 2006 18:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/69634.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/02/15/69634.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/69634.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/69634.aspx</trackback:ping>
        </item>
        <item>
            <title>Atlas, Viewstate, IE and FF.</title>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/02/13/69327.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In my &lt;A href="http://geekswithblogs.net/jonasb/archive/2006/02/12/AtlasJanCTPIssues.aspx"&gt;inaugural post&lt;/A&gt;, I described a problem I had with a WebMethod erroring out instantly on the client, accompanied by a puzzling message in the Event Log, regarding viewstate.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;On a whim, on that site, I decided to &amp;#8220;publish&amp;#8221; the website from within VS 2005 to a separate directory.&amp;nbsp; I set up another virtual directory within IIS to point to that directory, loaded up the site and IE, and all my WebMethod calls were working!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;From IE6, that is.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;From FireFox, none of the calls work on the published website....&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;...the first time. If I click on the link that calls the WebMethod again (after getting the instant error), it works fine. Very weird.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69327"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69327" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/69327.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/02/13/69327.aspx</guid>
            <pubDate>Mon, 13 Feb 2006 14:47:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/69327.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/02/13/69327.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/69327.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/69327.aspx</trackback:ping>
        </item>
        <item>
            <title>Putting the hair back in.</title>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/02/13/69319.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In &lt;A href="http://geekswithblogs.net/jonasb/archive/2006/02/12/69212.aspx"&gt;this post&lt;/A&gt;, I mentioned tearing my hear out because I couldn't get a gridview to work right with the update panel. Today I decided to just start on a fresh web form and everything seems to be working fine.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I did learn that an updatepanel without any triggers will consume any server-side event that fires inside of it (ie, to get paging and sorting working you don't need to explicitly specify triggers to handle those events). I also learned that (and this isn't related to Atlas) a gridview's page and sort events also fire off RowCommand events...which I guess make sense since the header is a &amp;#8220;row&amp;#8221; and the pager thing is also a &amp;#8220;row&amp;#8221;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Still trying to figure out the updatePanel inside of a userControl thing figured out, I'll keep you posted.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69319"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69319" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/69319.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/02/13/69319.aspx</guid>
            <pubDate>Mon, 13 Feb 2006 14:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/69319.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/02/13/69319.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/69319.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/69319.aspx</trackback:ping>
        </item>
        <item>
            <title>Tearing my hear out, bit by bit.</title>
            <category>Atlas</category>
            <link>http://geekswithblogs.net/jonasb/archive/2006/02/12/69212.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Ok, I'm about to have a nervous breakdown and need to post this, and then walk away for a bit.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I have a gridview on a page, that looks like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;asp:gridview id="gvTest" runat="server" allowpaging="true" allowsorting="true" autogeneratecolumns="false" pagesize="5" onpageindexchanging="gvTest_PageIndexChanging" onrowcommand="gvTest_RowCommand" onsorting="gvTest_Sorting" enablesortingandpagingcallbacks="false"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;columns&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;asp:boundfield datafield="Id" headertext="Id" sortexpression="Id" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;asp:boundfield datafield="Name" headertext="Name" sortexpression="Name" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;asp:templatefield headertext="Preview"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;itemtemplate&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;asp:linkbutton id="linkPreview" runat="server" commandname="Preview" commandargument='&amp;lt;%#(int)DataBinder.Eval(Container.DataItem, "Id") %&amp;gt;' text="Preview" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/itemtemplate&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/asp:templatefield&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/columns&amp;gt;&lt;BR&gt;&amp;lt;/asp:gridview&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I have an UpdatePanel that has triggers like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;triggers&amp;gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;lt;atlas:controleventtrigger controlid="gvTest" eventname="RowCommand" /&amp;gt;&lt;BR&gt;&amp;lt;/triggers&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Why then, when I sort&amp;nbsp;or page the gridview, does the updatepanel swallow my postback, but when I click the linkbutton that says preview, do I get a postback?&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69212"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=69212" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jonasb/aggbug/69212.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jonas Bush</dc:creator>
            <guid>http://geekswithblogs.net/jonasb/archive/2006/02/12/69212.aspx</guid>
            <pubDate>Sun, 12 Feb 2006 17:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jonasb/comments/69212.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jonasb/archive/2006/02/12/69212.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jonasb/comments/commentRss/69212.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jonasb/services/trackbacks/69212.aspx</trackback:ping>
        </item>
    </channel>
</rss>