ASP.NET - 如何包括CSS只有不alrealy包括它? [英] ASP.NET - How to include CSS only if it isn't alrealy included?
问题描述
我用code波纹管动态包含一个CSS文件:
HtmlHead头=(HtmlHead)Page.Header;
HtmlLink链接=新HtmlLink();
link.Attributes.Add(的href,Page.ResolveClientUrl(〜/ App_Themes文件/默认/ stylesheet.css中));
link.Attributes.Add(型,文/ CSS);
link.Attributes.Add(相对,样式);
head.Controls.Add(链接);
的问题是:我想这样做仅一次,且仅当它不alrealy包含在页面
。我如何验证是否已经包含它?
编辑:
答案告诉我,在页面加载到包括使用!的IsPostBack
将不解决我的问题,因为这code将是一个Web用户控件和我的内页可能有很多相同的用户控制。
例如,我使用下面的code使用JavaScript来做到这一点:
如果(!Page.ClientScript.IsClientScriptIncludeRegistered(jsScript))
{
Page.ClientScript.RegisterClientScriptInclude(jsScript,RESOLVEURL(〜/工具/ myScript.js));
}
做到了......
在code我用如下:
布尔cssAlrealyIncluded = FALSE;
HtmlLink linkAtual;
的foreach(在Page.Header.Controls控制CTRL)
{
如果(ctrl.GetType()== typeof运算(HtmlLink))
{
linkAtual =(HtmlLink)CTRL; 如果(linkAtual.Attributes [HREF]。载有(datePicker.css))
{
cssAlrealyIncluded = TRUE;
}
}
} 如果(!cssAlrealyIncluded)
{
HtmlLink链接=新HtmlLink();
link.Attributes.Add(的href,RESOLVEURL(〜/公共事业/ datePickerRsx / datePicker.css));
link.Attributes.Add(型,文/ CSS);
link.Attributes.Add(相对,样式);
Page.Header.Controls.Add(链接);
}
I use the code bellow to dynamically include a CSS file:
HtmlHead head = (HtmlHead)Page.Header;
HtmlLink link = new HtmlLink();
link.Attributes.Add("href", Page.ResolveClientUrl("~/App_Themes/Default/StyleSheet.css"));
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
head.Controls.Add(link);
The problem is: I want to do it only once, and only if it isn't alrealy included in the page.
How do I verify if it is already included?
Edit:
Answers telling me to include in page load using !IsPostBack
won't solve my problem, as this code will be inside a Web User Control and my page may have a lot of the same user control.
For example, I use the code below to do it with javascript:
if (!Page.ClientScript.IsClientScriptIncludeRegistered("jsScript"))
{
Page.ClientScript.RegisterClientScriptInclude("jsScript", ResolveUrl("~/Utilities/myScript.js"));
}
Did it...
the code I used is as follows:
Boolean cssAlrealyIncluded = false;
HtmlLink linkAtual;
foreach (Control ctrl in Page.Header.Controls)
{
if (ctrl.GetType() == typeof(HtmlLink))
{
linkAtual = (HtmlLink)ctrl;
if (linkAtual.Attributes["href"].Contains("datePicker.css"))
{
cssAlrealyIncluded = true;
}
}
}
if (!cssAlrealyIncluded)
{
HtmlLink link = new HtmlLink();
link.Attributes.Add("href", ResolveUrl("~/Utilities/datePickerRsx/datePicker.css"));
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
Page.Header.Controls.Add(link);
}
这篇关于ASP.NET - 如何包括CSS只有不alrealy包括它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!