如有<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>用什么方法可以在后台注册一条CSS样式
<link href="/CSS/Style.css" rel="stylesheet" type="text/css" />
到head中了
结果为<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<link href="/CSS/Style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
------------------------------------
我用的方法如下HtmlLink lnkCss = new HtmlLink();
lnkCss.Attributes["type"] = "text/css";
lnkCss.Attributes["rel"] = "stylesheet";
lnkCss.Attributes["href"] = "/CSS/Style.css";
((Page)System.Web.HttpContext.Current.Handler).Header.Controls.Add(lnkCss); 以上可以实现,但是有一个问题就是
因为我的head有时候会写即本代码块
如<head runat="server">
<title>无标题页</title>
<%= Keyword %>
</head>如果页面像上面这样的话,执行添加CSS,就会报错
控件包含代码块(即 <% ... %>),因此无法修改控件集合。
如上面这样,怎样才是最好的解决办法呢谢谢
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>用什么方法可以在后台注册一条CSS样式
<link href="/CSS/Style.css" rel="stylesheet" type="text/css" />
到head中了
结果为<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<link href="/CSS/Style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
------------------------------------
我用的方法如下HtmlLink lnkCss = new HtmlLink();
lnkCss.Attributes["type"] = "text/css";
lnkCss.Attributes["rel"] = "stylesheet";
lnkCss.Attributes["href"] = "/CSS/Style.css";
((Page)System.Web.HttpContext.Current.Handler).Header.Controls.Add(lnkCss); 以上可以实现,但是有一个问题就是
因为我的head有时候会写即本代码块
如<head runat="server">
<title>无标题页</title>
<%= Keyword %>
</head>如果页面像上面这样的话,执行添加CSS,就会报错
控件包含代码块(即 <% ... %>),因此无法修改控件集合。
如上面这样,怎样才是最好的解决办法呢谢谢
Page.ClientScript.RegisterClientScriptInclude
这个也注册不到head中
他都是在form中
谢谢
换成 asp:Literal控件,在后台代码直接给asp:Literal的Text属性符Keyword的值就可以了
-----------------
RE:这一句应该是错的
应该是,加了runat="server"后,才可以动态添加控件,但当在runat="server"中有了<%=..%>即时代码的时候就无法修改控件集合但问题是我现在要兼顾这两种情况要怎么做呢
谢谢主要就是用什么方法,不是Control.Add的方法把我的<link css ... />添加到head当中谢谢
{
HtmlLink link = new HtmlLink();
link.Href = styleUrl;
link.Attributes["text"] = "text/css";
link.Attributes["rel"] = "stylesheet"; Page.Controls.Add(link);
}
谢谢
Page.Controls.Add(link);
----------------------
那我的page中也有即时代码块的话怎么办?
所以用controls.add总是感觉不是很好谢谢
--------------
前提是header中不能有<%= %>
---------------
我是想做成一个方法,这个方法直接执行就行了
如果要用一个Literal的话
我就直接考到页面里就行了谢谢
http://www.cnblogs.com/insus/articles/1419154.html
/// 用于写出发送给浏览器的控件标记
/// </summary>
/// <param name="writer">System.Web.UI.HtmlTextWriter对象</param>
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
this.RegisterScript("Common.js");
this.RegisterCss(="/CSS/Style.css");
string redirecturl = Common.RequestFilter.GetQueryString("redirecturl");
base.Render(writer);
}
#endregion /// <summary>
/// 注册脚本
/// </summary>
protected virtual void RegisterScript(string scriptfile)
{
//注册JQuery脚本文件
if (!ClientScript.IsStartupScriptRegistered(this.GetType(), scriptfile))
{
ClientScript.RegisterStartupScript(this.GetType(), scriptfile, "<script type=\"text/javascript\" charset=\"gb2312\" src=\"/Js/" + scriptfile + "\"></script>");
}
}
{
HtmlLink link=new HtmlLink();
link.Href= styleUrl;
link.Attributes["text"]="text/css";
link.Attributes["rel"]="stylesheet"; Page.Header.Controls.Add(link);
}