Posted on 2004-10-12
Medium Priority
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?

Question by:dalsandhu
  • 3
  • 3

Expert Comment

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
   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.

Author Comment

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.


Expert Comment

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.

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.


Author Comment

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.


Accepted Solution

onskee earned 2000 total points
ID: 12299487
Place the code you don't want to re-run (in Page_Load or anywhere else) within
If Not IsPostBack
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.


Author Comment

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.


Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Over time, the online landscape has altered considerably, but that’s nothing compared to the up-and-coming trends that will shape the web design industry in the coming year. Keep reading to find out which trends will shape B2B web design in 2018.
These seven tips can help you create an extraordinary website, one that captivates audiences and has them wanting to return regularly for more. Keep reading to find out what your site is missing and what you need to add!
This tutorial walks through the best practices in adding a local business to Google Maps including how to properly search for duplicates, marker placement, and inputing business details. Login to your Google Account, then search for "Google Mapmaker…
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.
Suggested Courses

600 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