是否可以在css中使用c#变量

时间:2018-06-18 21:50:26

标签: c# css asp.net

有没有办法在CSS样式中使用会话变量,例如动态设置宽度%。

    width:<%Convert.ToString(Session["DaysAvailable"]);%>%;

1 个答案:

答案 0 :(得分:1)

是的,正如@ JB11所证实的那样。这是一个有效的例子。

  1. div的宽度仅在PageLoad()上设置为25%。
  2. 按钮Click()事件的设置为75%。
  3. <强> SessionCSS.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SessionCSS.aspx.cs" Inherits="SessionCSS" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>    
        <style>
            .my-class{
                background-color: green;
                color: white;
                width: <%= Session["DaysAvailable"].ToString() %>%;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">    
    
            <div class="my-class">
                Days available
            </div>
            <br/>
            <asp:Button ID="btnUpdateDays" runat="server" Text="Update days" OnClick="btnUpdateDays_Click" />
        </form>
    </body>
    </html>
    

    SessionCSS.cs(代码隐藏)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class SessionCSS : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if( !Page.IsPostBack)
            {
                Session["DaysAvailable"] = 25;
            }
        }
    
        protected void btnUpdateDays_Click(object sender, EventArgs e)
        {
            Session["DaysAvailable"] = 75;
        }
    }
    

    <强>结果:

    enter image description here

    注意:仅当CSS直接位于页面标记内而不是外部样式表中时,此功能才起作用。