以编程方式将样式应用于asp.net网站

Lon*_*der 3 css c# asp.net webforms

使用新的 Empty网站应用程序

我想通过一个包含css属性的自定义值的fie将样式应用于aspx页面,我不确定哪种方法更好.

我还在测试这个概念,我有一个包含这些值的文件:

width;100px    width;130px    background-color;#aac93f
Run Code Online (Sandbox Code Playgroud)

这些值不是硬编码的,而是由另一个应用程序生成的

我想把它读进应用程序.

我能想到我知道的两种方式:

`File.ReadAllLines` or `File.ReadAllText`.
Run Code Online (Sandbox Code Playgroud)

然后通过代码隐藏通过proccessed数据设置html元素样式属性

htmltag.Style.Add("width", setting1)....etc
Run Code Online (Sandbox Code Playgroud)

要么

我还可以从动态/程序化数据加载样式表

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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">

<!--   and put a C# server code like below -->

<%=someVariableOrCsMethodReturnedValue%>
</head>
Run Code Online (Sandbox Code Playgroud)

这样将保存带有加载值的格式化样式.

是为css样式加载自定义值的方法?

Ber*_*ncı 6

您可以使用.NET将CSS加载到.NET中的对象

objectName.Attributes.Add("style", "width:100px; width:130px; background-color:#aac93f");
Run Code Online (Sandbox Code Playgroud)

但是,建议不要使用此选项,因为如果您具有相同的属性,则不会应用css的内联编码和上部css设置.

最好的方法是设置一个外部CSS类并在其中设置所有这些类:

objectName.Attributes.Add("class", "exampleClass");
Run Code Online (Sandbox Code Playgroud)

在你的CSS类中:

.exampleClass{width:100px; width:130px; background-color:#aac93f}
Run Code Online (Sandbox Code Playgroud)


dev*_*vio 6

<style> 标签也可以用作服务器控件

<style type="text/css" runat="server" id="htmlCss"></style>
Run Code Online (Sandbox Code Playgroud)

这将在页面中生成一个 HtmlGenericControl 类型的字段。

在页面生命周期事件之一(Page_Load、Page_Init 等)中,分配文字 CSS 定义,如下所示:

var css = @"
body
{
  background-color:#b0c4de;
}";
htmlCss.InnerHtml = css;
Run Code Online (Sandbox Code Playgroud)