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

时间:2012-12-17 15:37:28

标签: c# asp.net css webforms

使用新的空网站应用

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

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

width;100px    width;130px    background-color;#aac93f

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

我希望将其读入应用程序。

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

`File.ReadAllLines` or `File.ReadAllText`.

然后通过代码隐藏通过proccessed data

设置html元素样式属性
htmltag.Style.Add("width", setting1)....etc

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

 
<%@ 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>

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

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

3 个答案:

答案 0 :(得分:6)

您可以使用

将CSS加载到.NET中的对象
objectName.Attributes.Add("style", "width:100px; width:130px; background-color:#aac93f");

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

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

objectName.Attributes.Add("class", "exampleClass");

在您的CSS课程中:

.exampleClass{width:100px; width:130px; background-color:#aac93f}

答案 1 :(得分:4)

&lt; style&gt;标签也可以是used as server control

<style type="text/css" runat="server" id="htmlCss"></style>

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

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

var css = @"
body
{
  background-color:#b0c4de;
}";
htmlCss.InnerHtml = css;

答案 2 :(得分:0)

您也可以将自定义CSS编写到一个asp.net Literal对象中,然后将somwhere放在webform中,这样可以渲染所有css ......

在你的代码背后:

Literal1.Text = "<style>" + File.ReadAllText(filepathhere) + "</style>";

在您的页面中呈现:

<style>
    .class1
    {
        width: 100px;
    }

    .class2
    {
        width: 100px;
    }
</style>

然后让每个元素引用css中包含的类。