OK. I know that this has been discussed, but I have not been able to find a
good explanation of this yet. The archives are not easy to search.
I want to be able to update the content of the <head></head> tag or the
<title></title> tag or the <script></script> tag from down within my page.
I have a custom control that can dig down into the DOM on the server side,
but I can't seem to get it to make any changes that seem to take affect and
I can't get any of it to work without setting the runat="server" attribute
for the tags I want to change.
The next problem is that the editor (VS.NET) likes to remove the
runat="server" attribute for any tag that DS feels should not have the
attribute.
So my questions are:
Question 1:
Is there a way to access a general HTML tag on the server? I need to be able
to change the InnerHtml for the tag and have it show up on the browser.
Right now I am trying to use the Render(HtmlTextWriter output) function:
Page p = this.Page;
bool found = false;
foreach( Control control in p.Controls )
{
if( found )
break;
if( control as HtmlGenericControl != null )
{
if( ((HtmlGenericControl)control).TagName.ToUpper() =="HEAD"
)
{
found = true;
string newStr = "\r\n<title>"+title+"</title>" +
((HtmlGenericControl)control).InnerHtml;
((HtmlGenericControl)control).InnerHtml += newStr;
}
}
}
The InnerHtml has the data I want, but when I change it nothing passes
through to the browser. Do I need to do this before the Render() function or
somewhere else?
Also this will ONLY work if I set runat="server" for the <head> tag.
So Question 2:
Is there a way to change what VS.NET deems correct HTML? Is there a template
somewhere that I can change to allow runat="server" to be OK for the tags I
want?
BTW: Microsoft might want to conceder making the entire DOM available on the
server side in a similar fashion to the way IE6 sees the DOM on the client
side. That way we can adjust the DOM before it gets sent to the browser.
(Maybe there is a way to do this, but I can't find it.)
Thanks in advance,
Mike Collins
You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.