【问题标题】:What is wrong in this code?Image Button has to be clicked twice to fire?这段代码有什么问题?图像按钮必须单击两次才能触发?
【发布时间】:2011-02-01 19:16:37
【问题描述】:
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    HttpCookie cookie = new HttpCookie("CultureInfo");
    cookie.Value = ImageButton1.CommandArgument;
    Response.Cookies.Add(cookie);
    Server.Transfer(Request.Path);
    Thread.CurrentThread.CurrentCulture = new CultureInfo(cookie.Value);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(cookie.Value);
}

标记在 web 控件中,这里是:

<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/_48.png"  
                 CommandArgument="en-US" OnClick="ImageButton1_Click" /> 

【问题讨论】:

  • 你能告诉我们你的Page_Load吗?我怀疑你可能没有检查Page.IsPostback
  • 不,实际上我没有检查 Page_Load。
  • 你能展示一些你的标记吗?
  • 标记在 web 控件中,这里是:

标签: asp.net imagebutton commandargument


【解决方案1】:

不确定在这种情况下是否相关,但是 Server.Transfer 将抛出 ThreadAbortException,就像默认的 Response.Redirect 一样。您的最后两条语句将不会被执行。

将它们移到 Server.Transfer 上方,使用 try/catch/finally 块,或者查看 Server.Execute 是否满足您的需求。执行完所引用的页面后会返回。

【讨论】:

  • 感谢它的工作,我只是将 Server.Transfer 移到代码下方并且它工作。再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2021-11-11
相关资源
最近更新 更多