【问题标题】:Sometimes imagebutton click event not fired有时图像按钮单击事件未触发
【发布时间】:2013-04-02 11:58:02
【问题描述】:

我有一个方法可以添加一个 onclick 事件和一个 imagebutton。 但有时您必须在“弹出”窗口打开之前多次按下按钮。 知道为什么会这样吗?

如果我将事件添加到我的图像按钮,这是我的代码:

private void AddProjectDetails()
    {
        ImageButton imgBtn;
        HiddenField hfld;
        String ProjectNumber;
        for (int i = 0; i < GridViewProperties.Rows.Count; i++)
        {
            hfld = GridViewProperties.Rows[i].FindControl("HiddenProjId") as HiddenField;
            imgBtn = GridViewProperties.Rows[i].FindControl("ibtnShowExtra") as ImageButton;
            ProjectNumber = hfld.Value;
            imgBtn.Attributes.Add("onclick", "window.open('ProjectDetails.aspx?ProjectNumber=" + Server.UrlEncode(ProjectNumber) + "','Graph','height=590,width=600,left=50,top=50,scrollbars=yes'); return true;");
        }
    }

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    尝试从 javascript 返回 false。这将防止回发。有时回发可能比 windows.open 更快,在这种情况下,我认为您不需要它。

    另一种解决方案是使用&lt;a href='...' &gt;image&lt;/a&gt; 代替图像按钮

    【讨论】:

      【解决方案2】:

      你为什么在你的 java-script 函数中使用return true
      您是否需要在您的页面上回发。
      如果不使用return false

      我还建议你写一个javascript函数并如下调用它

      function OpenPopUp(projectNumber) 
      {
            window.open("ProjectDetails.aspx?ProjectNumber="+ projectNumber 
                            ,'Graph','height=590,width=600,left=50,top=50,scrollbars=yes'); 
            return false;
      };
      

      并在您的 c# 代码中调用它

      imgBtn.Attributes.Add("onclick", "return OpenPopUp('"+Server.UrlEncode(ProjectNumber)+"');");
      

      【讨论】:

      • 在单独的函数中这样做有什么好处?
      【解决方案3】:

      就像 Stefano 和 Shekhar 所说的,您不能对 LinkBut​​tons、Imagebuttons 使用 return true,除非您希望页面回发。

      你也可以这样使用:

      <asp:ImageButton ID="ButtonOpenProject" runat="server" ImageUrl="~/Images/OpenProject.png"  OnClientClick="return OpenProject('"<%# ProjectNumber %>"');" />
      

      在您的 JavaScript 脚本中,您可以执行以下操作:

      function OpenProject(ProjectNumber){
          window.open('ProjectDetails.aspx?ProjectNumber=' + ProjectNumber + ','Graph','height=590,width=600,left=50,top=50,scrollbars=yes');
          return false;
      }
      

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 2010-10-21
        • 2013-01-17
        • 2011-12-02
        • 2013-10-14
        • 2018-11-07
        相关资源
        最近更新 更多