Call Function from aspx

M

Miro

I am really having trouble with this. I am trying to call a function from
my .vb file within my .aspx file.
My current results is that nothing happens.
Wondering if someone can help me out.

<form id="form1" runat="server">
<div>
<br />
<asp:Label ID="Label1" runat="server" Text="<%= helloworld()
%>"></asp:Label>
<br />
</div>
</form>

and from my .vb file:


Partial Class _Default
Inherits System.Web.UI.Page

Function helloworld() As String
Return "From.vb"
End Function
End Class

How do I get the label1 to get the text from the helloworld function on
load?

I know I can use "on_load event", but I want to try to call a function like
this just like as if it was databound.

Thanks,
 
G

Guest

I am really having trouble with this.  I am trying to call a function from
my .vb file within my .aspx file.
My current results is that nothing happens.
Wondering if someone can help me out.

    <form id="form1" runat="server">
    <div>
       <br />
    <asp:Label ID="Label1" runat="server" Text="<%= helloworld()
%>"></asp:Label>
    <br />
        </div>
    </form>

and from my .vb file:

Partial Class _Default
    Inherits System.Web.UI.Page

    Function helloworld() As String
        Return "From.vb"
    End Function
End Class

How do I get the label1 to get the text from the helloworld function on
load?

I know I can use "on_load event", but I want to try to call a function like
this just like as if it was databound.

Thanks,

The function must be marked as protected or public in order to be
accessible from the aspx page.

Protected Function helloworld() As String

Read more about Access Specifiers
http://msdn.microsoft.com/en-us/library/ms973875.aspx

Hope this helps
 
M

Mark Rae [MVP]

I know I can use "on_load event", but I want to try to call a function
like this just like as if it was databound.

Firstly, I think you're making things harder than they need to be...

However, consider this:

Label1 <asp:Label ID="Label1" runat="server"><%=
helloworld()%></asp:Label><br />
Label2 <asp:Label ID="Label2" runat="server" Text="<%# helloworld()%>" /><br
/>
Label3 <asp:Label ID="Label3" runat="server" Text="<%= helloworld()%>" />

Label1 will always work.
Label2 uses databinding syntax, so will work only if you call DataBind() in
before the HTML has been streamed to the client, e.g. in Page_Load
Label3, as it stands, will never work.
 
G

Gregory A. Beamer

Miro said:
I am really having trouble with this. I am trying to call a function from
my .vb file within my .aspx file.
My current results is that nothing happens.
Wondering if someone can help me out.

<form id="form1" runat="server">
<div>
<br />
<asp:Label ID="Label1" runat="server" Text="<%= helloworld()
%>"></asp:Label>
<br />
</div>
</form>

and from my .vb file:


Partial Class _Default
Inherits System.Web.UI.Page

Function helloworld() As String
Return "From.vb"
End Function
End Class

How do I get the label1 to get the text from the helloworld function on
load?

I know I can use "on_load event", but I want to try to call a function
like this just like as if it was databound.

There are two ways to bind in .NET. One is declarative, in the tags, as you
are attempting. Note that this can tightly couple your logic very easy.
Follow Alexy's post to help. Mark has also suggested a simpler syntax,
although I don't believe it gets around the issue Alexey mentioned.

The second is to bind in events to controls. It is a much nicer syntax, esp.
with ASP.NET controls. I know you don't want to go this direction, for some
reason, but it is really a better way to handle the issue in almost every
instance.


--
Peace and Grace,
Greg

Twitter: @gbworld
Blog: http://gregorybeamer.spaces.live.com

************************************************
| Think outside the box! |
************************************************
 
M

Mark Rae [MVP]

Mark has also suggested a simpler syntax, although I don't believe it gets
around the issue Alexey mentioned.

It doesn't, but that's the artificial restriction that the OP has imposed...

The second is to bind in events to controls. It is a much nicer syntax,
esp. with ASP.NET controls. I know you don't want to go this direction,
for some reason, but it is really a better way to handle the issue in
almost every instance.

Indeed. As I mentioned, the OP is making things unnecessarily difficult and
complicated...
 
M

Miro

It may look like I am making things difficult, but I am learning asp.net and
javascript and trying to setup some javascript variables and items from
functions.

I dumbed down the example I was looking for ( a lot ) in hopes that it makes
sense to me ( which now I think it does ), and now I can go back and look at
a more complicated example online.

Thanks,

Miro
 
G

Guest

It may look like I am making things difficult, but I am learning asp.net and
javascript and trying to setup some javascript variables and items from
functions.

I dumbed down the example I was looking for ( a lot ) in hopes that it makes
sense to me ( which now I think it does ), and now I can go back and look at
a more complicated example online.

Thanks,

Miro



It doesn't, but that's the artificial restriction that the OP has
imposed...
Indeed. As I mentioned, the OP is making things unnecessarily difficult
and complicated...

Good that you know how it works now. Just one remark: in general there
is no need to use the Label control (for client scripting). It can be
also done in the following way

Code-behind

Protected Dim HelloWorld As String = "Hej"

ASPX

.....
<script>
var x = <%=HelloWorld %>
</script>
.....

This would "inject" the value of the HelloWorld variable (it can be a
function too) from ASP.NET

Hope this helps
 
A

Andrew Morton

Mark said:
in message


Don't forget type="text/javascript"



Don't forget the semi-colon at the end of JavaScript lines... ;-)

....and quotes around the string.

This computer-programming thing needs so many fiddly bits, doesn't it <g>
 
M

Miro

lol

Yeah I was trying first to do it with just a label, and then set a variable
in my .js file to a value from my asp.net function which I have now got
working.

I know once i got the function working with protected i can do a "
protected dim bla as string = "hi"

Thanks for all the help.

I need to read up on 'protected/friend ..... and so on"

Cheers'

Miro
 
G

Guest

lol

Yeah I was trying first to do it with just a label, and then set a variable
in my .js file to a value from my asp.net function which I have now got
working.

I know once i got the function working with protected i can do a   "
protected dim bla as string = "hi"

Thanks for all the help.

I need to read up on 'protected/friend .....  and so on"

Cheers'

Miro

*.js is not processed by asp.net engine by default. The trick with
"injection" will work when you will put your client script inside
*.aspx
 
M

Miro

Ahh that is good to know.

I currently have it embedded in my aspx but I will be moving it to my .js
file which then by what you are saying - it would be breaking it.

I will test it out ...thanks

Miro
 
G

Guest

Ahh that is good to know.

I currently have it embedded in my aspx but I will be moving it to my .js
file which then by what you are saying - it would be breaking it.

I will test it out ...thanks

Miro

It's related only to that part where you get the values from the code-
behind. That means that you should keep that part in aspx and the rest
of the script can be moved to the external js-file.

Like this

<script language="javascript" type="text/javascript">
var x = '<%= fromcodebehind %>';
</script>
<script src="external.js" type="text/javascript"></script>

Hope this helps
 
A

Andrew Morton

Miro said:
It works... that's what matters to me!

And we all forgot to decorate the Javascript, in case there's a "<" or "&"
in it, to make sure it's XHTML-compliant

<script type="text/javascript">
//<![CDATA[
// code goes here
//]]>
</script>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,787
Messages
2,569,630
Members
45,335
Latest member
Tommiesal

Latest Threads

Top