Where is Page.RegisterClientScriptBlock Available?

  • Thread starter Thread starter Nathan Sokalski
  • Start date Start date
N

Nathan Sokalski

I have used the RegisterClientScriptBlock method in external functions of
mine (ones that are saved in a separate *.vb file), where I use them as
follows:

Public Shared Sub MyFunction(ByVal txtbox As TextBox)
'other code
txtbox.Page.RegisterClientScriptBlock("mykey","myscript")
'other code
End Sub

When I use this external function in my *.aspx.vb files, it does what I want
and expect. However, when I try to use the RegisterClientScriptBlock in my
*.aspx.vb files, it is not included in the list of methods, properties, etc.
when I type 'Page.' Why is Visual Basic not listing this method with the
others while I am writing my code? The *.aspx.vb file inherits
System.Web.UI.Page just like all the *.aspx.vb files. Thanks.
 
When I use this external function in my *.aspx.vb files, it does what I
want and expect. However, when I try to use the RegisterClientScriptBlock
in my *.aspx.vb files, it is not included in the list of methods,
properties, etc. when I type 'Page.'

Is it available when you type 'Me.'?
 
You need a reference to the actual Page object for the page that is
created as a response to the request.

In the example you show, that is accomplished by the fact that the
control that you are passing to the method contains a reference to the
page that it has been added to.

Inheriting the Page class would give you access to the
RegisterClientScriptBlock method, but that doesn't help you a bit. You
need a reference to the page that is being created, not just any Page
object.
 
Hello Nathan,

RegisterClientScriptBlock applies for the whole page, not the control
just use simple RegisterClientScriptBlock("mykey","myscript")

NS> I have used the RegisterClientScriptBlock method in external
NS> functions of mine (ones that are saved in a separate *.vb file),
NS> where I use them as follows:
NS>
NS> Public Shared Sub MyFunction(ByVal txtbox As TextBox)
NS> 'other code
NS> txtbox.Page.RegisterClientScriptBlock("mykey","myscript")
NS> 'other code
NS> End Sub
NS> When I use this external function in my *.aspx.vb files, it does
NS> what I want and expect. However, when I try to use the
NS> RegisterClientScriptBlock in my *.aspx.vb files, it is not included
NS> in the list of methods, properties, etc. when I type 'Page.' Why is
NS> Visual Basic not listing this method with the others while I am
NS> writing my code? The *.aspx.vb file inherits System.Web.UI.Page just
NS> like all the *.aspx.vb files. Thanks.
NS>
---
WBR,
Michael Nemtsev :: blog: http://spaces.msn.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsch
 
That idea did occur to me, but when I type Reg and then press Ctrl+Space,
the list that is displayed does not include RegisterClientScriptBlock
either.
 
I realize that I need access to the Page object that is being created, but
shouldn't the keyword Me do that, as Mark Rae mentioned in one of the other
responses?
 
in VS, check

Tools->Options->Text Editor->Basic->General

and check that "Hide advanced members" is unchecked. If it is checked, VS
will hide some methods from you.
 
THANK YOU! It might have taken me who knows how long to find that, and it is
definitely an important method in some cases. Thanks again!
 
Only if the code is inside the page class. If the code is in some other
class, the Me keyword references the instance of that class.
 
Back
Top