Solved

RegisterStartupScript

Posted on 2004-10-12
6
1,325 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
[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
  • 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
Business Impact of IT Communications

What are the business impacts of how well businesses communicate during an IT incident? Targeting, speed, and transparency all matter. Find out more in this infographic.

 

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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

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

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Alert after MVC form submitted 1 40
Company website 6 65
How to control cache of some js files ? 7 67
Word Press Fixes to Google Speed Test Issues 2 50
When it comes to write a Context Sensitive Help (an online help that is obtained from a specific point in state of software to provide help with that state) ,  first we need to make the file that contains all topics, which are given exclusive IDs. …
Australian government abolished Visa 457 earlier this April and this article describes how this decision might affect Australian IT scene and IT experts.
The viewer will learn how to dynamically set the form action using jQuery.
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

734 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