Solved

Refresh label on page

Posted on 2010-09-07
11
449 Views
Last Modified: 2012-05-10
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?
0
Comment
Question by:Simon Cripps
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +3
11 Comments
 
LVL 33

Expert Comment

by:jppinto
ID: 33616658
lblStatus.Text = ""
lblStatus.Text = "Processing " & InputFile
0
 
LVL 33

Expert Comment

by:jppinto
ID: 33616673
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
0
 

Author Comment

by:Simon Cripps
ID: 33616847
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

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 29

Expert Comment

by:Kumaraswamy R
ID: 33616883
lblStatus.Text = ""
if (InputFile.tostring ="")
{
lblStatus.Text = "Processing " & InputFile
}
0
 
LVL 29

Expert Comment

by:Kumaraswamy R
ID: 33616889
lblStatus.Text = ""
if (InputFile.tostring  ="")
{
lblStatus.Text = ""
}
else
{
lblStatus.Text = "Processing " & InputFile
}
0
 

Author Comment

by:Simon Cripps
ID: 33617026
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?

0
 
LVL 9

Expert Comment

by:abhinayp86
ID: 33620080
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
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

Open in new window

0
 
LVL 2

Accepted Solution

by:
gmilhon earned 500 total points
ID: 33623178
All of the above solutions aren't true client/server updates while the postback is occuring. The best solution I have found is to use EssentialObject's ProgressBar. It is free and here is an example of it: http://demo.essentialobjects.com/Demos/Progress%20Bar/Server%20Side%20Task%20-%20Advanced%201/Demo.aspx.

You can use the client side java script to update an item on the client side. I use a paragraph <p> and set the innerhtml to the updated value.
0
 
LVL 5

Expert Comment

by:puffdaddy411
ID: 33633317
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.
0
 
LVL 5

Expert Comment

by:puffdaddy411
ID: 33633347
Crippsy:  "I think I need to use Ajax UpdatePanel but how?"
 
I appologize.  Please disregard my post above.



0
 

Author Closing Comment

by:Simon Cripps
ID: 33660449
Very usefull tools here, thanks for pointing them out
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

622 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question