Asp.net ASP:Net链接按钮控件回发问题
在我的profile.aspx页面中有一个asp.net linkButton(或imageButton)控件。我正在检查下面页面中代码隐藏中的Request.Querystring(“id”) http://localhost:42932/profile.aspx?id=1 当我第一次加载配置文件页面时,它不会被发回。没关系!。当我使用带有addAddress的imageButton控件转到另一个用户配置文件(同一页面,只是查询字符串不同) http://localhost:42932/profile.aspx?id=2 它被寄回来了。我不想把它寄回去。但是如果我使用一个常规的html输入元素,比如 a href=“http://localhost:42932/profile.aspx?id=2” 它没有被发回。因此,我希望图像按钮的行为类似于html输入元素 这是我的按钮 ASPX: 编辑:Asp.net ASP:Net链接按钮控件回发问题,asp.net,asp.net-controls,Asp.net,Asp.net Controls,在我的profile.aspx页面中有一个asp.net linkButton(或imageButton)控件。我正在检查下面页面中代码隐藏中的Request.Querystring(“id”) http://localhost:42932/profile.aspx?id=1 当我第一次加载配置文件页面时,它不会被发回。没关系!。当我使用带有addAddress的imageButton控件转到另一个用户配置文件(同一页面,只是查询字符串不同) http://localhost:42932/pro
此控件位于页面加载中。应该如此!回复我上面提到的状态。因为当Session[“order”]=0时,所有其他函数都在工作,所以请使用
OnCLientClick
而不是OnClick
,以便只运行客户端代码。然后,请指定返回false代码>
i、 e
但是,如果可以使用正常的而不是指定PostBackUrl来完成此操作,那么为什么要使用服务器控件呢?我建议在按钮单击事件处理程序中使用Response.Redirect()
:
public void imgProfile_Click(object sender, eventArgs e){
Response.Redirect("profile.aspx?id=" + Session["userID"]);
}
或者,在页面加载期间,只需使用超链接
控件并设置NavigateUrl
属性:
<asp:HyperLink ID="imgProfile" runat="server"><img src="images/site/profile1.png" /></asp:Hyperlink>
imgProfile.NavigateUrl = "profile.aspx?id=" + Session["userID"];
imgProfile.NavigateUrl=“profile.aspx?id=“+Session[“userID]”;
这不是我要问的。我还希望执行服务器端代码。但不是回发!回发将导致PageLoad()执行,因此请将所有不希望在其中运行的代码放入一个!IsPostBack,或者专门用一些可以跳过你不想运行的代码的东西来标记它。我编辑了我的帖子,请检查一下。是的,如果不是pageload.Response.Redirect,则我的所有功能都正常工作。重定向也会导致帖子返回到同一页面。我应该在项目中使用imageButton:)
if (!IsPostBack)
{
Session["order"] = 0;
}
<asp:ImageButton ID="imgProfile" ImageUrl="images/site/profile1.png" runat="server" OnClientClick="return false;" />
public void imgProfile_Click(object sender, eventArgs e){
Response.Redirect("profile.aspx?id=" + Session["userID"]);
}
<asp:HyperLink ID="imgProfile" runat="server"><img src="images/site/profile1.png" /></asp:Hyperlink>
imgProfile.NavigateUrl = "profile.aspx?id=" + Session["userID"];