背景
我在嵌套母版页中有一些链接按钮。它们是子菜单,因此当用户单击按钮时,它将用户重定向到特定页面。每个按钮显示一个图标和特定页面的名称。(例如项目描述)
中的标记NestedMasterPage.master
如下所示:
<asp:LinkButton ID="btnTest" CssClass="testButton" runat="server">
<div class="submenu-left"><img src="~/Images/test.png" runat="server" /></div>
<div class="submenu-right">Test</div>
</asp:LinkButton>
我想做的事
单击链接按钮时,我想更改单击的链接按钮的背景色,以便用户知道他们当前在哪个页面中。
我做了什么
在 NestedMasterPage.master.cs 中,对于每个链接按钮,我都有
public LinkButton BtnTest
{
get{ return btnTest; }
}
在每个 .aspx 页面中,我添加了
<%@ MasterType VirtualPath="~/NestedMasterPage.master" %>
并且在加载重定向页面时,我添加了此代码来更改背景色。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Master.BtnTest.BackColor = System.Drawing.Color.Black;
}
这确实改变了背景颜色......但我遇到了一个问题。
问题
我遇到的问题是,当重定向页面中发生回发时,按钮会丢失图标和页面名称,并且只保留颜色。
例如
Click button2 redirects to page2, and the button2 has black backcolor:
+---------+ +---------+ +---------+
| button1 | | button2 | | button3 |
+---------+ +---------+ +---------+
white black white
After postback: The button loses the text (and icon)
+---------+ +---------+ +---------+
| button1 | | | | button3 |
+---------+ +---------+ +---------+
white black white
我试过投入Master.BtnTest.BackColor = System.Drawing.Color.Black;
,if(!Page.IsPostBack)
但显然没有做任何事情。
我不明白为什么修改颜色会这样做。每次回发时重新呈现按钮文本听起来不是正确的解决方案,我想知道这里到底发生了什么。我查看了很多关于访问主文件中的控件的文章,但没有找到任何解决此类问题的文章,我什至不知道应该寻找什么来找到类似的问题。任何帮助表示赞赏。