Solved

RegisterStartupScript

Posted on 2004-10-12
6
1,322 Views
Last Modified: 2012-06-27
Hi Experts

I have injected some startup javascript from my ASP.NET/VB.NET code, and this javascript runs successfully when the page loads. I've used Page.RegisterStartupScript(<name>, <script>) to do this.

In certain circumstances I want to unregister this startup code so it doesn't execute - any ideas how to do this?

Thanks
0
Comment
Question by:dalsandhu
  • 3
  • 3
6 Comments
 
LVL 3

Expert Comment

by:onskee
ID: 12294294
Unless I'm misunderstanding your question, you can prevent it from loading by placing it in a conditional -
If blnMyCondition = True Then
    ' do something here
Else
   Page.RegisterStartupScript("blnMyCondition", "<script language......>")
End IF

If you can provide a code sample or some more details, we might be able to give you a more direct answer.
0
 

Author Comment

by:dalsandhu
ID: 12298154
I use this method in the Page_Load sub to set the focus to the first field on my form.

The user can update values in certain fields which cause a trip to the server and the page to reload. After the user has updated these fields I want the focus to move to the next field rather than back to the first field. The problem is that the function fired by the field change event, fires after the Page_Load sub. So, I can't put a conditional in the Page_Load code as at that point there is no knowledge of the field change event.

If this isn't clear I'll provide the code.

Thanks
0
 
LVL 3

Expert Comment

by:onskee
ID: 12298215
I think you may be able to use the textchanged event to call your startup script.

Private Sub txtBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBox.TextChanged
    Page.RegisterStartupScript("MoveFocus", "<script language>document.forms(0)." & txtNewBox.ClientID & ".focus();</script>")
End Sub


If I'm still off, please let me know.

Thx.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 

Author Comment

by:dalsandhu
ID: 12299293
That's exactly what I've done, so you are not 'off' at all.

The focus does change, which is good, but the Page_Load script also fires. This has the effect that both the field I want, and the first field, are highlighted. Perhaps I'm being pernickety, but I don't like this, so I want to turn the first script off.

I've tried 'overwriting' the script, i.e. calling the method with the same ID, but this doesn't work - the original script fires.

I've just thought, I could have the movefocus script retrieve the name of the field to move to based on the value in a hidden field. The page_load and onchange procs could then set the value of this hidden field. Hopefully the hidden field value will be set before the movefocus script fires.

I'd still like to know how to unregister the script though, as this would be easier.

Thanks
0
 
LVL 3

Accepted Solution

by:
onskee earned 500 total points
ID: 12299487
Place the code you don't want to re-run (in Page_Load or anywhere else) within
If Not IsPostBack
  Page.RegisterStartupScript(...)
End IF
This will only fire on the first load.

AFAIK, a startupscript can't be 'unregistered', since it's simply emitted to the browser when the page has loaded.

Also, you can use IsStartupScriptRegistered("KeyName") (returns true/false) to see if a script is already registered.

HTH
0
 

Author Comment

by:dalsandhu
ID: 12299634
I'll go with the 'not ispostback' - thanks onskee.

I wanted to have my startup script outside the ispostback conditional, as there are cancel, save & navigation buttons that reload the page. I can repeat the startup script register in the onclick event procs for these buttons easily enough though.

Cheers,
Dal
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
What about 192.168.1.0/28 3 42
jquery to restrict certain words from input in form 11 34
Wrapper for APPs 9 76
Eloquent ORM manual paginator defaults to simple 2 20
Read about why website design really matters in today's demanding market.
This article will inform Clients about common and important expectations from the freelancers (Experts) who are looking at your Gig.
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…
The is a quite short video tutorial. In this video, I'm going to show you how to create self-host WordPress blog with free hosting service.

785 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