我的 profile.aspx 页面中有一个asp.net linkButton(或imageButton)控件。我在后面的代码中检查下面页面中的Request.Querystring(“id”)。
http://localhost:42932/profile.aspx?id=1
当我第一次加载个人资料页面时,它不会回发。没关系!。当我转到另一个用户配置文件时(同一页面只是查询字符串不同)使用带有adddress的imageButton控件;
http://localhost:42932/profile.aspx?id=2
它被贴回来了。我不希望它被贴回来。但是,如果我使用常规的html输入元素(如
)转到此页面a href =“http://localhost:42932/profile.aspx?id=2”
它没有回发。所以我希望图像按钮的行为类似于html输入元素。
这是我的imageButton;
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;
}
此控件位于页面加载中。所以它应该是!我用上面提到的状态回发。因为Session [“order”] = 0
时所有其他功能都正常工作答案 0 :(得分:0)
使用OnCLientClick
代替OnClick
,以便您只运行客户端代码。然后,sepcify你return false;
即
<asp:ImageButton ID="imgProfile" ImageUrl="images/site/profile1.png" runat="server" OnClientClick="return false;" />
但是,为什么要使用服务器控件,这可以使用普通的<img ..
html控件来完成?
答案 1 :(得分: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"];