ASP代码
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/product1.jpg" OnClick="ImageButton1_Click" />
活动代码
public void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
product product = new product { };
product.Id = Convert.ToInt32(3);
ImageButton1.PostBackUrl = "~/Pages/Product.aspx?id=" + product.Id;
}
我想在单击图像按钮时重定向到名为product的页面,但只有在传递产品ID时才会显示产品页面。 Productid来自产品表,例如产品ID为“3”正在传递product.Id
。
仅在第二次点击图像按钮时才有效。
当您点击按钮后,它会刷新页面,然后您必须再次单击它才能重定向到产品页面。有谁知道为什么?
答案 0 :(得分:1)
问题在于您的方法,当您第一次点击时,您的按钮没有回发网址。所以,它不会重定向。在您的点击事件中,您可以通过以下代码分配回发网址:
ImageButton1.PostBackUrl = "~/Pages/Product.aspx?id=" + product.Id;
第二次点击,它会重定向。
相反,您应该在第一次点击时调用此代码进行重定向:
Response.Redirect("~/Pages/Product.aspx?id=" + product.Id);
答案 1 :(得分:0)
您只需要设置:
ImageButton1.PostBackUrl = "~/Pages/Product.aspx?id=" + product.Id;
<{1>}中的,而不是在按钮点击处理程序中写入,并在Page_Load
本身获取product.Id
。