Changing Body attribute

T

tshad

Is there a way during Page_Load to change or add an attribute to the Body
tag?

I want to be able to change the onLoad body attribute to do a focus on one
of my text boxes, such as:

onLoad="document.forms[0].txtLogon.focus();"

The problem is I have my <body> in an include file and want to set the
onLoad attribute during Page_Load time.

Thanks,

Tom.
 
B

bruce barker

just use javascript:

<script>document.body.onload = function()
{document.forms[0].txtLogon.focus();};</script>

-- bruce (sqlwork.com)


| Is there a way during Page_Load to change or add an attribute to the Body
| tag?
|
| I want to be able to change the onLoad body attribute to do a focus on one
| of my text boxes, such as:
|
| onLoad="document.forms[0].txtLogon.focus();"
|
| The problem is I have my <body> in an include file and want to set the
| onLoad attribute during Page_Load time.
|
| Thanks,
|
| Tom.
|
|
 
K

Karl Seguin

There are ways, but why not just use Page.RegisterStartupScript?

Dim str As New System.Text.StringBuilder
str.Append("<script language=""JavaScript"">")
str.Append(System.Environment.NewLine)
str.Append("document.forms[0].txtLogon.focus();")
str.Append(System.Environment.NewLine)
str.Append("</script>")
Page.RegisterStartupScript("SetFocus", str.ToString())

Nice function to have in a utility class...

Karl
 
T

tshad

bruce barker said:
just use javascript:

<script>document.body.onload = function()
{document.forms[0].txtLogon.focus();};</script>

I tried that in a small html file to test it and it doesn't seem to work (at
least not the way I did it).

****************************************************************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<script language="javascript">
document.body.onload = function(){document.forms[0].txtEmail.focus();};
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
Email message: <input name="txtEmail" type="text" size="32" id="txtEmail" />

<body>
</body>
</html>
*****************************************************************

Am I missing something?

Thanks,

Tom.
-- bruce (sqlwork.com)


| Is there a way during Page_Load to change or add an attribute to the
Body
| tag?
|
| I want to be able to change the onLoad body attribute to do a focus on
one
| of my text boxes, such as:
|
| onLoad="document.forms[0].txtLogon.focus();"
|
| The problem is I have my <body> in an include file and want to set the
| onLoad attribute during Page_Load time.
|
| Thanks,
|
| Tom.
|
|
 
T

tshad

Karl Seguin said:
There are ways, but why not just use Page.RegisterStartupScript?

Dim str As New System.Text.StringBuilder
str.Append("<script language=""JavaScript"">")
str.Append(System.Environment.NewLine)
str.Append("document.forms[0].txtLogon.focus();")
str.Append(System.Environment.NewLine)
str.Append("</script>")
Page.RegisterStartupScript("SetFocus", str.ToString())

That is a great idea. I didn't know this existed. I started looking into
how this works and tried to create a small page that really does nothing,
but I wanted to look at how the RegisterStartupScript works. I am running
into the same error I have had before whenever I try to put a tag into a
string. I usually get an error.

Here is the page I am using:

*********************************************************************************
<%@ Page Language="VB" trace="false" debug="true" AutoEventWireup="true"
ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ Import Namespace="System.Web.Mail" %>
<html>
<script runat="server">
sub sendEmail_click ( sender as Object, e as EventArgs )
Call setFocus(txtLogon)
End Sub

Private Sub SetFocus(ByVal ctrl As Control)
' Define the JavaScript function for the specified control.
Dim focusScript As String = "<script language='javascript'>" & _
"document.getElementById('" + ctrl.ClientID & "').focus();</script>"

' Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript)
End Sub

</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Home Page</title>
<link href="staffing.css" rel="stylesheet" type="text/css">
</head>
<body>
<form id="Form1" runat="server">
<center>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="114" colspan=2><span class="style1">Simply enter your email
address below and we'll email you your password. </span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Email Address: </td>
<td><asp:textbox id="txtLogon" runat="server" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value=" Send "
onClick="sendEmail_click">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
</center>
</form>
</body>
</html>
*******************************************************************************

I get the following error:
*******************************************************************
Compiler Error Message: BC30648: String constants must end with a double
quote.

Source Error:

Line 11: ' Define the JavaScript function for the specified control.
Line 12: Dim focusScript As String = "<script language='javascript'>" &
_
Line 13: "document.getElementById('" + ctrl.ClientID &
"').focus();</script>"
Line 14:
Line 15: ' Add the JavaScript code to the page.
**************************************************************************

If I take out any character from "</script>" (doesn't matter which
character), I don't get the error.

So it obviously has nothing to do with the double quotes.

Why does this happen?

I am not even into the RegisterStartupScript yet, until I can solve this
question.

Thanks,

Tom
Nice function to have in a utility class...

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


tshad said:
Is there a way during Page_Load to change or add an attribute to the Body
tag?

I want to be able to change the onLoad body attribute to do a focus on
one
of my text boxes, such as:

onLoad="document.forms[0].txtLogon.focus();"

The problem is I have my <body> in an include file and want to set the
onLoad attribute during Page_Load time.

Thanks,

Tom.
 
K

Karl Seguin

Just a bug :)
http://support.microsoft.com/kb/316174/EN-US/

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


tshad said:
Karl Seguin said:
There are ways, but why not just use Page.RegisterStartupScript?

Dim str As New System.Text.StringBuilder
str.Append("<script language=""JavaScript"">")
str.Append(System.Environment.NewLine)
str.Append("document.forms[0].txtLogon.focus();")
str.Append(System.Environment.NewLine)
str.Append("</script>")
Page.RegisterStartupScript("SetFocus", str.ToString())

That is a great idea. I didn't know this existed. I started looking into
how this works and tried to create a small page that really does nothing,
but I wanted to look at how the RegisterStartupScript works. I am running
into the same error I have had before whenever I try to put a tag into a
string. I usually get an error.

Here is the page I am using:

****************************************************************************
*****
<%@ Page Language="VB" trace="false" debug="true" AutoEventWireup="true"
ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ Import Namespace="System.Web.Mail" %>
<html>
<script runat="server">
sub sendEmail_click ( sender as Object, e as EventArgs )
Call setFocus(txtLogon)
End Sub

Private Sub SetFocus(ByVal ctrl As Control)
' Define the JavaScript function for the specified control.
Dim focusScript As String = "<script language='javascript'>" & _
"document.getElementById('" + ctrl.ClientID & "').focus();</script>"

' Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript)
End Sub

</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Home Page</title>
<link href="staffing.css" rel="stylesheet" type="text/css">
</head>
<body>
<form id="Form1" runat="server">
<center>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="114" colspan=2><span class="style1">Simply enter your email
address below and we'll email you your password. </span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Email Address: </td>
<td><asp:textbox id="txtLogon" runat="server" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value=" Send "
onClick="sendEmail_click">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
</center>
</form>
</body>
</html>
****************************************************************************
***

I get the following error:
*******************************************************************
Compiler Error Message: BC30648: String constants must end with a double
quote.

Source Error:

Line 11: ' Define the JavaScript function for the specified control.
Line 12: Dim focusScript As String = "<script language='javascript'>" &
_
Line 13: "document.getElementById('" + ctrl.ClientID &
"').focus();</script>"
Line 14:
Line 15: ' Add the JavaScript code to the page.
**************************************************************************

If I take out any character from "</script>" (doesn't matter which
character), I don't get the error.

So it obviously has nothing to do with the double quotes.

Why does this happen?

I am not even into the RegisterStartupScript yet, until I can solve this
question.

Thanks,

Tom
Nice function to have in a utility class...

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


tshad said:
Is there a way during Page_Load to change or add an attribute to the Body
tag?

I want to be able to change the onLoad body attribute to do a focus on
one
of my text boxes, such as:

onLoad="document.forms[0].txtLogon.focus();"

The problem is I have my <body> in an include file and want to set the
onLoad attribute during Page_Load time.

Thanks,

Tom.
 
T

tshad

Karl Seguin said:

I just love MS.

They say it is by design. One of those undocumented feature, I suppose.

What is interesting is that I see examples on the net all the time that
build strings that is supposed to dynamically put the Javascript on a page
and they "never" do this (add the "chr(60) &" in place of the "<"). I
wonder why that is.

Thanks,

Tom.
Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


tshad said:
Karl Seguin said:
There are ways, but why not just use Page.RegisterStartupScript?

Dim str As New System.Text.StringBuilder
str.Append("<script language=""JavaScript"">")
str.Append(System.Environment.NewLine)
str.Append("document.forms[0].txtLogon.focus();")
str.Append(System.Environment.NewLine)
str.Append("</script>")
Page.RegisterStartupScript("SetFocus", str.ToString())

That is a great idea. I didn't know this existed. I started looking
into
how this works and tried to create a small page that really does nothing,
but I wanted to look at how the RegisterStartupScript works. I am
running
into the same error I have had before whenever I try to put a tag into a
string. I usually get an error.

Here is the page I am using:

****************************************************************************
*****
<%@ Page Language="VB" trace="false" debug="true" AutoEventWireup="true"
ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ Import Namespace="System.Web.Mail" %>
<html>
<script runat="server">
sub sendEmail_click ( sender as Object, e as EventArgs )
Call setFocus(txtLogon)
End Sub

Private Sub SetFocus(ByVal ctrl As Control)
' Define the JavaScript function for the specified control.
Dim focusScript As String = "<script language='javascript'>" & _
"document.getElementById('" + ctrl.ClientID &
"').focus();</script>"

' Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript)
End Sub

</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Home Page</title>
<link href="staffing.css" rel="stylesheet" type="text/css">
</head>
<body>
<form id="Form1" runat="server">
<center>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="114" colspan=2><span class="style1">Simply enter your
email
address below and we'll email you your password. </span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Email Address: </td>
<td><asp:textbox id="txtLogon" runat="server" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value=" Send "
onClick="sendEmail_click">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
</center>
</form>
</body>
</html>
****************************************************************************
***

I get the following error:
*******************************************************************
Compiler Error Message: BC30648: String constants must end with a double
quote.

Source Error:

Line 11: ' Define the JavaScript function for the specified control.
Line 12: Dim focusScript As String = "<script language='javascript'>" &
_
Line 13: "document.getElementById('" + ctrl.ClientID &
"').focus();</script>"
Line 14:
Line 15: ' Add the JavaScript code to the page.
**************************************************************************

If I take out any character from "</script>" (doesn't matter which
character), I don't get the error.

So it obviously has nothing to do with the double quotes.

Why does this happen?

I am not even into the RegisterStartupScript yet, until I can solve this
question.

Thanks,

Tom
Nice function to have in a utility class...

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Is there a way during Page_Load to change or add an attribute to the Body
tag?

I want to be able to change the onLoad body attribute to do a focus on
one
of my text boxes, such as:

onLoad="document.forms[0].txtLogon.focus();"

The problem is I have my <body> in an include file and want to set the
onLoad attribute during Page_Load time.

Thanks,

Tom.
 

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

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top