C# 链接按钮颜色不变

C# 链接按钮颜色不变,c#,css,asp.net,C#,Css,Asp.net,我有一个用户控件,它有一个链接按钮。单击链接按钮,我将重定向到默认页面。默认页面使用此用户控件。我正在尝试将linkbutton的颜色设置为紫色(如果访问)。我认为这是不起作用的,因为网页上的帖子正在发生。下面是我的代码 void LinkButton_Click(Object sender, EventArgs e) { Response.redirect("~/Default.aspx") } Css .d:悬停{ 颜色:绿色; } d:参观{ 颜色:紫色; } 我不

我有一个用户控件,它有一个链接按钮。单击链接按钮,我将重定向到默认页面。默认页面使用此用户控件。我正在尝试将linkbutton的颜色设置为紫色(如果访问)。我认为这是不起作用的,因为网页上的帖子正在发生。下面是我的代码

void LinkButton_Click(Object sender, EventArgs e) 
  {
     Response.redirect("~/Default.aspx")
  }
Css

.d:悬停{
颜色:绿色;
}
d:参观{
颜色:紫色;
}

我不认为这是css的问题,因为当我悬停时,颜色变为绿色。访问的链接颜色不变。是否因为页面在单击链接按钮时再次呈现?如何解决此问题?

您需要为此使用超链接,因为链接按钮使用JavaScript发回或导航到其他页面

它不使用HREF属性重定向。因此,在这种情况下,css将不会像您预期的那样工作


为此,您需要使用超链接或本机html锚定(a)标记。

好的,这是一个非常有趣的问题,我应该说我发现了一个技巧,可以在整个应用程序中使用它,因此我的解决方案如下:

您只能在链接按钮上使用相同的
OnPreRender=“LinkButtons\u 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>
就这样!结果如下:


(性能提示:当您不需要会话时,请始终终止会话)

我也是web开发人员的新手。但是我认为你是对的,页面再次加载,所以访问链接的css无法工作。嗯,如果你研究过cookies和session,也许你可以保存cookies作为一个布尔值,如果点击链接,然后为你的css操作该值。或者可能有一个比我所建议的更简单的css解决方案。哈哈:P@Niang谢谢你的回复。我认为有一个简单的css方法可以做到这一点。这就是为什么我在这里哈哈哈,也许这个链接可以帮助你。这是一个不同的例子,但你可以试着解决这个问题。@Niang谢谢你的链接。我想,正如你提到的,我必须使用会话变量的服务器端来完成这项工作。我感谢你的回复。但是,我必须使用linkbutton,因为我正在linkbutton click上设置会话变量。@tranttrum,您可以在Hyperlink中使用查询字符串。它必须是一个post值。所以,我不能使用查询字符串。谢谢你的帮助,这会很有用的-
 <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);
    }