0

这是一个两部分的问题,一个是 CSS,另一个是代码隐藏。这是我的按钮导航代码......

        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Buttons/upviewassets.png"     OnClick="ImageButton1_Click" />
    <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Buttons/upaddassets.png"     OnClick="ImageButton2_Click" />            

所有的按钮都是并排的。在 OnClick() 事件中,我的代码是这样的......

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton1.ImageUrl = "Buttons/dnviewassets.png";
        ImageButton2.ImageUrl = "Buttons/upaddassets.png";
        //Response.Redirect("~/WebForm1.aspx");
    }

    protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {

        ImageButton1.ImageUrl = "Buttons/upviewassets.png";
        ImageButton2.ImageUrl = "Buttons/dnaddassets.png";
        //Response.Redirect("~/WebForm1.aspx");        
    }

当我注释掉 response.redirect 时,它可以工作,但我需要能够使用 response.redirect,因为这是在母版页中,当我使用 response.redirect 方法运行它时,我需要这些按钮重定向到其他页面图像不会改变。同样,当我第一次在没有 response.redirect 的情况下运行它时,当我单击按钮时,它会快速跳转并返回到它应该在的位置,但之后每次都可以正常工作。

所以对于第二部分,我也尝试使用 css 来更改 imagebuttons 图像但无法让它工作,我已经在网上搜索并浏览了教程,但即使使用提供的代码它也不能正常工作而且我的按钮一直跳。我试图模仿母版页中选项卡的外观。

谢谢

4

1 回答 1

1

我会在点击事件的会话中保存一个标志,并在重定向页面 PreRender 中检索它:

protected override void OnPreRender(EventArgs e)
{
    if (!IsPostBack)
    {
        PaintButtons();
    }
    base.OnPreRender(e);
}

还有我的 PaintButtons 方法:

private void PaintButtons()
{
    if(Session["ImageButton_Toggled"] == null )
    {               
        ImageButton1.ImageUrl = "Buttons/upviewassets.png";
        ImageButton2.ImageUrl = "Buttons/upaddassets.png";
    }
    else
    {
        int toggleId = 1;
        int.TryParse(Session["ImageButton_Toggled"].ToString(), out toggleId);

        if (toggleId == 1)
        {
            ImageButton1.ImageUrl = "Buttons/dnviewassets.png";
            ImageButton2.ImageUrl = "Buttons/upaddassets.png";
        }
        else
        {
            ImageButton1.ImageUrl = "Buttons/upviewassets.png";
            ImageButton2.ImageUrl = "Buttons/dnaddassets.png";
        }
    }
}

单击我的母版页中的事件方法:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    Session["ImageButton_Toggled"] = 1;
    Response.Redirect("~/WebForm1.aspx");
}

protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
    Session["ImageButton_Toggled"] = 2;
    Response.Redirect("~/WebForm1.aspx");        
}

现在我可以重定向到我想要的任何页面,并且我的母版页将按预期工作。

于 2013-09-22T17:38:30.340 回答