有没有办法在CSS样式中使用会话变量,例如动态设置宽度%。
width:<%Convert.ToString(Session["DaysAvailable"]);%>%;
答案 0 :(得分:1)
是的,正如@ JB11所证实的那样。这是一个有效的例子。
PageLoad()
上设置为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直接位于页面标记内而不是外部样式表中时,此功能才起作用。