我有一个用户控件,其中有一个链接按钮。在链接按钮上单击,我将重定向到默认页面。默认页使用此用户控件。如果访问,我正在尝试将链接按钮的颜色设置为紫色。我认为这是无效的,因为页面回发,这是正在发生的。下面是我的密码。
void LinkButton_Click(Object sender, EventArgs e)
{
Response.redirect("~/Default.aspx")
}Css
.d:hover{
color:green;
}
.d:visited{
color:purple;
}
</style>我不认为这是css问题,因为当我悬停时,颜色会变成绿色。访问的链接颜色不会改变。是因为在链接按钮上再次呈现页面吗?我该怎么解决这个问题?
发布于 2014-06-25 06:26:49
好的,这是一个非常有趣的问题,我应该说我找到了一个技巧来做到这一点,这很可能在整个应用程序中使用,下面是我的解决方案:
您只可以在链接按钮上使用相同的OnPreRender="LinkButtons_PreRender"一次,然后在您的aspx上会有类似的内容:
<asp:LinkButton ID="LinkButton1" runat="server"
OnClick="LinkButton1_Click" OnPreRender="LinkButtons_PreRender">LinkButton</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server"
OnClick="LinkButton2_Click" OnPreRender="LinkButtons_PreRender">LinkButton</asp:LinkButton>在后面的代码中,您可以修复如下代码:
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session[((LinkButton)sender).ID + "visited"] = System.Drawing.Color.Purple;
// your code here
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Session[((LinkButton)sender).ID + "visited"] = System.Drawing.Color.Purple;
// your code here
}
protected void LinkButtons_PreRender(object sender, EventArgs e)
{
LinkButton lnkbtn = (LinkButton)sender;
lnkbtn.ForeColor = (System.Drawing.Color)(Session[lnkbtn.ID + "visited"] ?? System.Drawing.Color.Blue);
}就这样!结果如下:

(性能提示:当您不需要会话时,请始终关闭它们)
发布于 2014-06-25 03:40:57
为此您需要使用超链接,因为链接按钮使用JavaScript回发或导航到另一个页面。
它不使用HREF属性重定向。因此,在这种情况下,访问的css将不能像您预期的那样工作。
为此,您需要使用超链接或本地html锚(A)标记。
https://stackoverflow.com/questions/24399649
复制相似问题