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

<channel>
	<title>Eclipsed4utoo&#039;s Blog&#187; AJAX</title>
	<atom:link href="http://eclipsed4utoo.com/blog/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsed4utoo.com/blog</link>
	<description>Not Your Ordinary Programmer</description>
	<lastBuildDate>Thu, 08 Sep 2011 17:09:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ASP.Net &#8211; AJAX and an External Javascript File</title>
		<link>http://eclipsed4utoo.com/blog/aspnet-ajax-external-javascript-file/</link>
		<comments>http://eclipsed4utoo.com/blog/aspnet-ajax-external-javascript-file/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 22:00:44 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[javacript]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=264</guid>
		<description><![CDATA[Recently, I needed to add a color picker to a web application.  I thought I would try the new AJAX toolkit, but the toolkit was full of issues so I had to resort to doing it with javascript.  I downloaded a color picker that somebody had done(and donated for their development). When I went to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I needed to add a color picker to a web application.  I thought I would try the new AJAX toolkit, but the toolkit was full of issues so I had to resort to doing it with javascript.  I downloaded a color picker that somebody had done(and donated for their development).</p>
<p>When I went to add the external javascript file and the other associated files, my AJAX page would no longer show up.  Anything inside of an UpdatePanel would not show up.  I did some searching and found that using an external javascript file can cause AJAX to fail.</p>
<p>I originally had this code which was giving me issues.</p>
<pre class="brush: xml;">
&lt;asp:Content ID=&quot;Content1&quot; ContentPlaceHolderID=&quot;MainContent&quot; runat=&quot;server&quot;&gt;
    &lt;asp:ScriptManagerProxy ID=&quot;ScriptManagerProxy1&quot; runat=&quot;server&quot; /&gt;
    &lt;script src=&quot;../Javascript/jscolor/jscolor.js&quot; type=&quot;text/javascript&quot; /&gt;

    &lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;
       &lt;%--   some controls  --%&gt;
    &lt;/asp:UpdatePanel&gt;
&lt;/asp:Content&gt;
</pre>
<p>I used the <strong>ScriptReference </strong>in the <strong>ScriptManagerProxy</strong> to add a reference to the javascript file:</p>
<pre class="brush: xml;">
&lt;asp:Content ID=&quot;Content1&quot; ContentPlaceHolderID=&quot;MainContent&quot; runat=&quot;server&quot;&gt;
    &lt;asp:ScriptManagerProxy ID=&quot;ScriptManagerProxy1&quot; runat=&quot;server&quot;&gt;
       &lt;Scripts&gt;
          &lt;asp:ScriptReference Path=&quot;~/Javascript/jscolor/jscolor.js&quot; /&gt;
       &lt;/Scripts&gt;
    &lt;/asp:ScriptManagerProxy&gt;

    &lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;
       &lt;%--   some controls  --%&gt;
    &lt;/asp:UpdatePanel&gt;
&lt;/asp:Content&gt;
</pre>
<p>And that worked.  The controls inside the <strong>UpdatePanel</strong> now show up.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/aspnet-ajax-external-javascript-file/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; AJAX with Continuous Progress Bar</title>
		<link>http://eclipsed4utoo.com/blog/aspnet-ajax-continuous-progress-bar/</link>
		<comments>http://eclipsed4utoo.com/blog/aspnet-ajax-continuous-progress-bar/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 17:31:16 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Progress Bar]]></category>
		<category><![CDATA[progressbar]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=133</guid>
		<description><![CDATA[I was recently asked about getting a Progress Bar to work in ASP.Net.  It didn&#8217;t need to be a progress bar that had a percentage, just something that would alert a user that something is happening behind the scenes. So I did some Google searching, and found tons of resources where people had created their [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently asked about getting a Progress Bar to work in ASP.Net.  It didn&#8217;t need to be a progress bar that had a percentage, just something that would alert a user that something is happening behind the scenes.</p>
<p>So I did some Google searching, and found tons of resources where people had created their own Progress Bar controls.  While that was all fine and good, I wasn&#8217;t looking to download somebody else&#8217;s custom control, and I wasn&#8217;t going to make my own.  So I wanted to figure out how I could use existing ASP.Net and AJAX controls to accomplish this task.</p>
<p>It turned out to be easier than I thought it would be.</p>
<p>I knew that I needed the progress bar to show modally, so that the user would not be able to interact with the form during the postback.  So I decided to use the <strong>ModalPopupExtender</strong> AJAX control.</p>
<p>So first, I have my <strong>Button</strong>, the <strong>ModalPopupExtender</strong>, the <strong>Panel</strong> that the extender will display, the <strong>Script Manager</strong>, and a <strong>hidden</strong> control.</p>
<pre class="brush: xml;">
&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot; /&gt;
&lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;
    &lt;ContentTemplate&gt;
        &lt;div&gt;
            &lt;asp:Button ID=&quot;btnSubmit&quot; OnClick=&quot;btnSubmit_Click&quot; OnClientClick=&quot;StartProgressBar()&quot;
                     runat=&quot;server&quot; Text=&quot;Submit Time&quot; Width=&quot;170px&quot; /&gt;

            &lt;ajaxToolkit:ModalPopupExtender ID=&quot;ProgressBarModalPopupExtender&quot; runat=&quot;server&quot;
                     BackgroundCssClass=&quot;ModalBackground&quot; BehaviorID=&quot;ProgressBarModalPopupExtender&quot;
                     TargetControlID=&quot;hiddenField&quot; PopupControlID=&quot;Panel1&quot; /&gt;

            &lt;asp:Panel ID=&quot;Panel1&quot; runat=&quot;server&quot; Style=&quot;display: none; background-color: #C0C0C0;&quot;&gt;
                 &lt;img src=&quot;progressbar.gif&quot; alt=&quot;&quot; /&gt;
            &lt;/asp:Panel&gt;

            &lt;asp:HiddenField ID=&quot;hiddenField&quot; runat=&quot;server&quot; /&gt;
       &lt;/div&gt;
   &lt;/ContentTemplate&gt;
&lt;/asp:UpdatePanel&gt;
</pre>
<p>If you notice, the <strong>TargetControlID </strong>attribute of the extender is NOT the button.  The reason for this is that the default functionality of the <strong>ModalPopupExtender </strong>is to require a button click from the <strong>Panel </strong>to close it.  Since I want the <strong>Panel </strong>to stay visible while the server does it&#8217;s processing, I set the <strong>TargetControlID </strong>to the <strong>hidden </strong>control.</p>
<p>Another thing to notice is the <strong>BackgroundCssClass </strong>attribute of the <strong>ModalPopupExtender</strong>.  This is REQUIRED for the extender to actual be modal.  Without it, the extender is a non-modal popup.(more on this later)</p>
<p>Also notice that the <strong>Button </strong>has both of the click events populated.  The <strong>OnClick </strong>event will be the server-side event handler.</p>
<pre class="brush: csharp;">
protected void btnSubmit_Click(object sender, EventArgs e)
{
     Thread.Sleep(7000);
     ProgressBarModalPopupExtender.Hide();
}
</pre>
<p>This event simply pauses server processing for 7 seconds to simulate a long running process.</p>
<p>The <strong>OnClientClick </strong>event will be calling a javascript function&#8230;</p>
<pre class="brush: jscript;">
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
    function StartProgressBar() {
        var myExtender = $find('ProgressBarModalPopupExtender');
        myExtender.show();
        return true;
    }
&lt;/script&gt;
</pre>
<p>And last, the CSS entry for the background of the <strong>ModalPopupExtender</strong>.</p>
<p>If you do not already have a CSS class added to your project, you will need to add one, and link it to the page in the <strong>HEAD </strong>tag.</p>
<pre class="brush: xml;">
&lt;link href=&quot;main.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
</pre>
<p>Then add this entry to the CSS file.</p>
<pre class="brush: xml;">
.ModalBackground
{
    background-color:Gray;

    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
}
</pre>
<p>If using Visual Studio 2008, you will get warnings saying that &#8220;filter&#8221; and &#8220;opacity&#8221; are not known CSS properties.  This is an issue with Visual Studio.  They are valid properties and they do work.  The 4 properties that are listed in the CSS entry should handle the opacity for all major browsers.  I have tested with IE7, Firefox 3.5, and Chrome.</p>
<p>And that is all you have to do.  The <strong>ModalPopupExtender </strong>will show when the button is clicked, and the server will start processing the code.  When the server has completed and sends the response back to the browser, it will hide the <strong>ModalPopupExtender</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/aspnet-ajax-continuous-progress-bar/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ASP.Net &#8211; Crystal Report Viewer &amp; AJAX</title>
		<link>http://eclipsed4utoo.com/blog/asp-net-crystal-report-viewer-ajax/</link>
		<comments>http://eclipsed4utoo.com/blog/asp-net-crystal-report-viewer-ajax/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 19:39:24 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Crystal Report Viewer]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=52</guid>
		<description><![CDATA[I ran across this issue with the Crystal Report Viewer not printing or exporting if it was inside of an AJAX UpdatePanel.  It seems that the Crystal Report Viewer is required to do a synchronous postback to be able to print or export. You will need to add the Triggers as shown below to the [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across this issue with the Crystal Report Viewer not printing or exporting if it was inside of an AJAX UpdatePanel.  It seems that the Crystal Report Viewer is required to do a synchronous postback to be able to print or export.</p>
<p>You will need to add the Triggers as shown below to the UpdatePanel, or remove it from the UpdatePanel all together.</p>
<pre class="brush: xml;">
&lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;
   &lt;Triggers&gt;
      &lt;asp:PostBackTrigger ControlID=&quot;CrystalReportViewer1&quot; /&gt;
   &lt;/Triggers&gt;
   &lt;ContentTemplate&gt;
      &lt;CR:CrystalReportViewer ID=&quot;CrystalReportViewer1&quot; runat=&quot;server&quot; AutoDataBind=&quot;true&quot; /&gt;
   &lt;/ContentTemplate&gt;
&lt;/asp:UpdatePanel&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/asp-net-crystal-report-viewer-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

