css - 根据 Session 更改按钮类

标签 css asp.net .net session

目标:向 ASP 按钮添加 session ,以便我可以根据一组规则更改 CSS 值。

到目前为止的代码:

<asp:Button ID="btnMyDetails" runat="server" Text="My Details" CssClass="<%=Session.Item('btnMyDetails').ToString()%>" CausesValidation="False" />

错误:

上面的代码尝试将 session 作为文本而不是 session 运行。我试过 "和 ' around。

历史:

我有一个使用列表的工作版本,但我想删除这个额外的编码:

<li class="<%=Session.Item("btnMyDetails").ToString()%>"
<asp:Button ID="btnMyDetails" runat="server" Text="All" CssClass="Button" /></li>

最佳答案

使用以下内容:

<asp:Button ID="btnMyDetails" runat="server" Text="My Details"  CssClass='<%#Session["btnMyDetails"].ToString()%>' CausesValidation="False"     OnClick="btnMyDetails_Click" />

当您当时为您的 Session 变量设置值时,不要忘记调用您创建的 Button 的 DataBind 方法。如果您不调用 DataBind 方法,则不会分配任何内容。

例如,在 page_load 方法中,您将 session 变量设置为某个值,

    protected void Page_Load(object sender, EventArgs e)
    {
        Session["btnMyDetails"] = "firstClass";
        btnMyDetails.DataBind();
    }

'firstClass' 将作为 cssClass 分配给您的按钮。

之后,如果您更改 session 变量的值,则再次调用该按钮的 DataBind 方法。给出了按钮点击事件的例子

    protected void btnMyDetails_Click(object sender, EventArgs e)
    {
        Session["btnMyDetails"] = "NewClass";
        btnMyDetails.DataBind();
    }

现在 'NewClass' 将被分配。

关于css - 根据 Session 更改按钮类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886476/

相关文章:

javascript - 使用带有括号的图像 URL 作为 jQuery 的背景

.net - 有没有办法在 Mac OS X 上安装 .net framework 4.5.2 或更高版本?

html - 制作一个 div 框中心 Bootstrap

css - 为什么我的页面在 Safari 和 firefox 中的起始位置比在 Chrome 中高?

javascript - 在 Html 元素名称中获取双引号

ASP.NET LinkBut​​ton/ImageButton 和 JQuery 验证?

c# - IIS 10.0 详细错误 - 404.0 - 未找到 - Windows 10 更新后

ASP.NET Classic OWIN StartUp ConfigureServices 未调用

.net - NuGet 更新和条件引用

asp.net - 升级到 WebAPI 2.1 时出错 XmlDocumentationProvider 未实现接口(interface)成员 GetDocumentation