0

我的profile.aspx页面中有一个 asp.net linkBut​​ton(或 imageButton)控件。我在下面的代码中检查 Request.Querystring("id") 。

http://localhost:42932/profile.aspx?id=1

当我第一次加载个人资料页面时,它不会发回。没关系!。当我使用带有地址的 imageButton 控件转到另一个用户配置文件(同一页面,只是查询字符串不同)时;

http://localhost:42932/profile.aspx?id=2

它被发回。我不希望它被发回。但是,如果我使用常规的 html 输入元素访问此页面,例如

a href = "http://localhost:42932/profile.aspx?id=2"

它没有发回。所以我希望图像按钮表现得像一个 html 输入元素。

这是我的图像按钮;

ASPX:

<asp:ImageButton ID="imgProfile" ImageUrl="images/site/profile1.png" runat="server"/>

。CS

imgProfile.PostBackUrl = "profile.aspx?id=" + Session["userID"];

编辑:

 if (!IsPostBack)
    {
        Session["order"] = 0;
    }

此控件在页面加载中。所以它应该是带有我上面提到的状态的 !postback 。因为当 Session["order"] = 0 时所有其他功能都在工作

4

2 回答 2

0

PostBackUrl我建议Response.Redirect()在按钮单击事件处理程序中使用,而不是指定:

public void imgProfile_Click(object sender, eventArgs e){
   Response.Redirect("profile.aspx?id=" + Session["userID"]);
}

或者,只需使用Hyperlink控件并在以下NavigateUrl期间设置属性Page_Load

<asp:HyperLink ID="imgProfile" runat="server"><img src="images/site/profile1.png" /></asp:Hyperlink>

imgProfile.NavigateUrl = "profile.aspx?id=" + Session["userID"];
于 2012-05-28T11:05:26.887 回答
0

使用OnCLientClick代替OnClick,以便您只运行客户端代码。然后,请说明您return false;

IE

<asp:ImageButton ID="imgProfile" ImageUrl="images/site/profile1.png" runat="server" OnClientClick="return false;" />

但是,既然可以使用普通的<img ..html 控件来完成,为什么还要使用服务器控件呢?

于 2012-05-28T11:02:13.097 回答