I am just starting to learn AJAX.
I would like to know why the PERCENTAGE PROGRESS BAR ( "ProgrBar" ) is NOT updated
( although the file is downloaded ).
What’s wrong with the code ?
Here is the relevant parts of the code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<body>
<form id="formA" runat="server">
<div id = "divId" >
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick" ></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlId="Timer1" />
</Triggers>
<ContentTemplate>
<fieldset>
<legend>UpdatePanel content</legend>
<asp:Label id="PercentageLb" visible="true" runat="server">Percentage: 0%</asp:Label>
<br /> <br />
<asp:Image ImageUrl="~/Images/bar_bgd.jpg" visible="true" id="BarBgd" width="204" height="24"
style="z-index:1;" runat="server"/>
<asp:Image ImageUrl="~/Images/bar.jpg" visible="true" id="ProgrBar" width="0" height="20"
style="z-index:2;" runat="server"/>
<div id="Btn" >
<asp:Button ID="StartBtn" runat="server" Text="Start" OnClick="StartBtn_Click" />
</div>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:Label id="WarnLb" visible="false" style="position:absolute;left:310px; top:175px; z-index:0;" runat="server"></asp:Label>
</form>
</body>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public partial class _Default : System.Web.UI.Page
{
public int percent;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void StartBtn_Click(object sender, EventArgs e)
{
StartDownload();
}
protected void StartDownload()
{
FileDownloader downloader = new FileDownloader();
downloader.DownloadComplete += new EventHandler(downloader_DownloadedComplete);
downloader.ProgressChanged += new DownloadProgressHandler(downloader_ProgressChanged);
downloader.Download("http://www.dreamsart.pwp.blueyonder.co.uk/PICT0033.zip", @"C:\");
}
protected void downloader_ProgressChanged(object sender, DownloadEventArgs e)
{
percent = e.PercentDone;
}
protected void Timer1_Tick(object sender, EventArgs e)
{
ProgrBar.Width = percent * 2;
PercentageLb.Text = "Percentage: " + percent + "%";
}
protected void downloader_DownloadedComplete(object sender, EventArgs e)
{
WarnLb.Text = "Download complete.";
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you need the background and bar images you can take them here:
http://www.dreamsart.pwp.blueyonder.co.uk/stratos/bar.jpg
http://www.dreamsart.pwp.blueyonder.co.uk/stratos/bar_bgd.jpg