Simon Cripps
asked on
Refresh label on page
Hi,
I have a page with a very long running script that loops round reading many individual files.
As this takes so long I would like to know where the job has progressed to.
I have a label on the page called lblStatus and each time the function loops and reads a new file
The new file name is held in a variable called "InputFile"
I would like lblStatus to say which file it is and update the page each time this changes. The job will continue to run so the page has not posted back yet.
in VB is there anything I can add to the folloowing so that this works
lblStatus.Text = ""
lblStatus.Text = "Processing " + InputFile
If not possible in VB what are my options?
I have a page with a very long running script that loops round reading many individual files.
As this takes so long I would like to know where the job has progressed to.
I have a label on the page called lblStatus and each time the function loops and reads a new file
The new file name is held in a variable called "InputFile"
I would like lblStatus to say which file it is and update the page each time this changes. The job will continue to run so the page has not posted back yet.
in VB is there anything I can add to the folloowing so that this works
lblStatus.Text = ""
lblStatus.Text = "Processing " + InputFile
If not possible in VB what are my options?
You cannot add strings with the plus (+) sign.
Also I don't see the point in doing this as the records will pass so fast that you won't be able to read the labels as it changes on each file, unless each file update takes at least, say, one second or so.
But anyway, please try with the "&" as I mentioned...that should work. I assume that you have the rest of the code, some loop since the first file until the last one.
jppinto
Also I don't see the point in doing this as the records will pass so fast that you won't be able to read the labels as it changes on each file, unless each file update takes at least, say, one second or so.
But anyway, please try with the "&" as I mentioned...that should work. I assume that you have the rest of the code, some loop since the first file until the last one.
jppinto
ASKER
Hi thanks for the input.
What is happening is that I am reading through 100 or so files eachone with several thousand records and so each file takes a couple of minutes to progress and I want to know which file (not record) is being processed.
As this is looping through all the 100 or so files it is not posting back the updates to the web page untill all files have been processes.
therefor how do I get the current "InputFile" to be displayed in the label lblStatus
lblStatus.Text = ""
lblStatus.Text = "Processing " & InputFile
What is happening is that I am reading through 100 or so files eachone with several thousand records and so each file takes a couple of minutes to progress and I want to know which file (not record) is being processed.
As this is looping through all the 100 or so files it is not posting back the updates to the web page untill all files have been processes.
therefor how do I get the current "InputFile" to be displayed in the label lblStatus
lblStatus.Text = ""
lblStatus.Text = "Processing " & InputFile
lblStatus.Text = ""
if (InputFile.tostring ="")
{
lblStatus.Text = "Processing " & InputFile
}
if (InputFile.tostring ="")
{
lblStatus.Text = "Processing " & InputFile
}
lblStatus.Text = ""
if (InputFile.tostring ="")
{
lblStatus.Text = ""
}
else
{
lblStatus.Text = "Processing " & InputFile
}
if (InputFile.tostring ="")
{
lblStatus.Text = ""
}
else
{
lblStatus.Text = "Processing " & InputFile
}
ASKER
no, no, no, no, no
Thanks for the input but the real issue is that I need to update a label while a sub routine is running though numerous files and need to identify which file
Sudocode below
Protected sub MyJob (.....
Get datafile of 100 file names
For each filename within data
Process the data of the file named in datafile
set InputFile as the current file name from datafile
Display in lblStatus.Text the name of the file InputFile
Next File
I think I need to use Ajax UpdatePanel but how?
Thanks for the input but the real issue is that I need to update a label while a sub routine is running though numerous files and need to identify which file
Sudocode below
Protected sub MyJob (.....
Get datafile of 100 file names
For each filename within data
Process the data of the file named in datafile
set InputFile as the current file name from datafile
Display in lblStatus.Text the name of the file InputFile
Next File
I think I need to use Ajax UpdatePanel but how?
I am using this in my app.
U should put the label in update panel along with a timer with interval 1sec (interval="1000").
And for each tick(1 sec here) the label gets updated.
Let me know if u have any questions.
Thanks,
Abhinay
U should put the label in update panel along with a timer with interval 1sec (interval="1000").
And for each tick(1 sec here) the label gets updated.
Let me know if u have any questions.
Thanks,
Abhinay
aspx page
<form id="form1" runat="server">
<asp:AjaxScriptManager runat="server" ID="fasdfs">
</asp:AjaxScriptManager>
<asp:UpdatePanel ID="upProcessing" runat="server" RenderMode="Inline" UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick" />
<asp:Label ID="lblProcessing" runat="server" /><br />
</ContentTemplate>
</asp:UpdatePanel>
</form>
vb Code
Protected Sub Timer1_Tick(sender As Object, e As EventArgs)
lblProcessing.Text = "Processing: " & InputFile
End Sub
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Are you creating a WinForms project or an ASP.Net webpage? I ask because of this zones in which this question is posted. I cannot speak for the ASP.NET stuff. However, if you are attempting this in a VB.NET WinForms project, you can use a BackgroundWorker and call a ReportProgress at certain points within your loop based on whatever you want. Within that ReportProgress routine, you can update your label as you are attempting.
I can continue with example if this is what you are actually doing.
I can continue with example if this is what you are actually doing.
Crippsy: "I think I need to use Ajax UpdatePanel but how?"
I appologize. Please disregard my post above.
I appologize. Please disregard my post above.
ASKER
Very usefull tools here, thanks for pointing them out
lblStatus.Text = "Processing " & InputFile