asp.net – 在ASCX自定义控件中放置CSS规则的位置?
我是ASP.NET新手,但我正在开发一个自定义控件,里面有一个多视图控件,显示了一堆不同的东西.其中一些使用
JQuery UI元素(如制表符和手风琴)显示,这些元素将进行相当多的自定义.
由于我将有很多CSS规则仅适用于自定义控件中的元素(而不是我们网站的其他部分),我想知道在哪里放置CSS样式规则. 我通常只是在网站根目录中放置样式表并从那里引用它.但是当我使用ASP.NET时,我觉得我应该将所有代码(包括CSS,JS等)放在自定义控件本身中.这感觉更“程序化”,将所有东西保持在一起. 任何人都可以提出我应该如何做到这一点? ASP.NET中Web开发的最佳实践是什么? 解决方法
如果您正在创建的控件位于单独的程序集中,则可以将CSS文件嵌入到程序集中以使其可重用,并从控件创建指向这些文件的直接链接,然后在您的控件中将注册它们以呈现为链接您网页中的标签
注意:请记住,您需要将程序集中的CSS文件标记为嵌入式资源 只需选择您的文件|然后proeprties并更改其Build Action属性并将其设置为:embedded Resource 在以下代码中: > AjaxEnabled.Web.UI表示程序集的命名空间 以下代码示例显示了所需的步骤:(在您的自定义服务器控件中) [assembly: WebResource("AjaxEnabled.Web.UI.DefaultStyle.css","text/css")] protected override void OnInit(EventArgs e) { base.OnInit(e); if (this.Page.Header != null) { if (!this.Page.ClientScript.IsClientScriptBlockRegistered("defaultCss")) { var link = new HtmlLink(); link.Href = this.Page.ClientScript.GetWebResourceUrl( typeof(YourControlType),"AjaxEnabled.Web.UI.DefaultStyle.css" ); link.Attributes.Add("rel","stylesheet"); link.Attributes.Add("type","text/css"); this.Page.Header.Controls.Add(link); this.Page.ClientScript.RegisterClientScriptBlock( typeof(Page),"defaultCss",string.Empty ); } } } 您需要在包含自定义控件的页面中添加ScriptManager控件的实例 <asp:ScriptManager runat="server" ID="sm"/> 在ASPX页面中,您需要将标题部分标记为服务器控件 <head runat="server"> 以下代码: link.Href = this.Page.ClientScript.GetWebResourceUrl( typeof(YourControlType),"AjaxEnabled.Web.UI.DefaultStyle.css"); 直接呈现链接到程序集中嵌入的CSS文件的链接 这个条件: if (!this.Page.ClientScript.IsClientScriptBlockRegistered("defaultCss")) ... this.Page.ClientScript.RegisterClientScriptBlock( typeof(Page),string.Empty ); 确保CSS在页面中只呈现一次,即使您删除了多个控件实例也是如此 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET MVC中定制授权
- asp.net – MVC3 Action作为一个简单的Web服务
- asp.net-mvc – 具有默认日期的MVC4日期选择器
- asp.net-core – 在asp.net vnext中使用Startup.cs中的Conf
- asp.net-mvc – ASP.NET MVC获取具有特定配置文件属性的用户
- asp.net-core – 如何在Entity Framework Core中运行存储过
- 在ASP.NET中,如何防止隐藏字段值的篡改
- asp.net-mvc – SQL CE 4.0还是SQL Express?果园对吗?
- .net – 从页面后面的代码中调用User Control中的函数
- asp.net-mvc – 使用AutoMapper的控制器上的单元测试
- asp.net – 在主页面加载中丢失了ViewState对象
- asp.net-mvc – 带有ASP.NET标识的MVC 5 – 用户
- asp.net-mvc – ASP.NET MVC AjaxHelper是否处理
- asp.net-mvc – HttpPostedFileBase没有绑定到模
- 如何用asp.net页面提供javascript?
- 如何处理在MVC视图中应用程序启动和传输和显示错
- asp.net-mvc – ASP.NET MVC文件名下划线
- asp.net – 我应该如何使用Identity 2.0和WebAPI
- asp.net-mvc – 为什么我不能在ASP.NET视图中设置
- asp.net-mvc – MVC脚手架 – 参考程序集中缺少类