目标:向 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/