【发布时间】:2023-03-26 14:34:01
【问题描述】:
有没有办法在 CSS 样式中使用会话变量,例如动态设置宽度百分比。
width:<%Convert.ToString(Session["DaysAvailable"]);%>%;
【问题讨论】:
有没有办法在 CSS 样式中使用会话变量,例如动态设置宽度百分比。
width:<%Convert.ToString(Session["DaysAvailable"]);%>%;
【问题讨论】:
是的,正如@JB11 所证实的那样。这是一个工作示例。
PageLoad() 上的 div 宽度设置为 25%。Click() 事件上设置为 75%。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;
}
}
结果:
注意:仅当 CSS 直接在页面标记内而不是在外部样式表中时,此功能才有效。
【讨论】: