【问题标题】:OnClientClick does not works on asp.net LinkButtonOnClientClick 不适用于 asp.net LinkBut​​ton
【发布时间】:2013-04-30 06:20:06
【问题描述】:

我有一个asp.net linkbutton,其中包含OnClientClick 属性,但是OnClientClick 中的函数永远不会被调用,它直接跳转到OnClick 函数。
以下是我使用 LinkBut​​ton 的两种方式:

<asp:LinkButton ID="btn" CssClass="button" Text="Browse Thumbnail" runat="server" 
     OnClientClick="return confirm('Are you sure you want to delete?');">
</asp:LinkButton>

和:

<asp:LinkButton ID="lnkDelete" runat="server" 
     OnClientClick="return confirm('Are you sure you want to delete this slide?');" 
     CommandName="DeleteThumbnail" CommandArgument='<%# Container.DataItemIndex %>'>
   <asp:Image ImageUrl="~/images/delete.gif" ID="imgDelete" runat="server"></asp:Image>  
</asp:LinkButton>

这两种方法都不起作用。

谁能提供一些相同的解决方案。

【问题讨论】:

  • 你没有在这两种方法中定义 OnClick,所以他不能跳转到 OnClick
  • 你错过了一个JavaScript 电话你应该尝试这样的onclick="javascript:return confirm('Are you sure you want to delete this slide?')"
  • 我的意思是它只是回发而不触发 OnClientClick 事件
  • 在下面?你能告诉我怎么做吗?我外面有双引号,里面有单引号
  • 内容应该是双引号,参数应该是单引号。刚刚在下面发布了我的答案。试试让我知道。

标签: c# asp.net linkbutton onclientclick


【解决方案1】:
  OnClientClick="javascript:return confirmAction();"  

  function confirmAction() {  
      if(confirm('Are you sure you want to delete?')) {  
        // you clicked the OK button.  
        // you can allow the form to post the data.  
        return true;  
    }  
    else {  
        return false;  
        }  
    }  

在服务器端实现 Onclick

 protected void lnkdelete_Click(object sender, EventArgs e)  
 {  
 }  

如果你不想调用服务器方法,请使用这个

   OnClientClick="javascript:confirmAction(); return false;" 

【讨论】:

  • 我试过这个 ​​ton> 还是不行
  • 按上述方法制作函数并尝试
  • 不,它不工作我在下面的函数:function Navigate() { javascript: window.open("microsoft.com"); } 和 OnClientClick="javascript:Navigate()" 但它不工作
  • OnClientClick="javascript:Navigate();
  • 我还尝试从 Page_Load 调用 OnClientClick:btn.OnClientClick = "javascript:return confirm('Are you sure?')" 和 btn.OnClientClick = "javascript:Navigate();"两者都不起作用
【解决方案2】:

很可能有其他页面元素阻止了此事件的触发。

您是否有任何其他可能干扰的页面元素?您是否尝试过删除除此之外的所有其他页面元素?您是否有一些可能会干扰的 AJAX 调用?您是否尝试过使用简单的 html 元素(不是 asp.net)?

您很可能在链接按钮中做的一切都很好,但似乎问题出在其他地方。

【讨论】:

  • 是的,你是对的,问题出在其他地方,我有一个功能可以阻止锚标签的 onclick 事件。
【解决方案3】:

将其放在单引号中,如下所示,

<asp:LinkButton ID="btn" CssClass="button" Text="Browse Thumbnail" runat="server" OnClientClick="return confirm('Are you sure you want to delete?');"></asp:LinkButton>

【讨论】:

    【解决方案4】:

    这样使用

     function Navigate() 
     { 
         javascript: window.open("microsoft.com"); 
         return false;
     }
    

    在客户端点击如下

    OnClientClick="return javascript:Navigate()"
    

    甚至

     function Navigate() 
     { 
         window.open("microsoft.com"); 
         return false;
     }
    
     OnClientClick="return Navigate()"
    

    【讨论】:

    • 它会起作用的。您是否检查了页面上的js javascript 错误。
    【解决方案5】:

    似乎您已禁用 IE 中的 javascript。只需启用它,您就可以开始了。您可以按照这篇文章来启用/禁用 IE 中的 javascript:

    http://browsers.about.com/od/internetexplorertutorials/ss/disable-javascript-ie9.htm

    【讨论】:

      【解决方案6】:

      您的OnClientClick 方法没有问题,它应该会提示确认窗口。但是您没有指定链接按钮的 onclick 事件。因此,您将无法从后面的代码中获取事件。

      您可能需要为您的浏览器启用 java 脚本

      How to enable JavaScript in a web browser?

      您在使用 Ajax 工具包吗?更新面板?那么你需要使用脚本管理器注册脚本

      要从 AJAX 回发中注入确认脚本,

      ScriptManager.RegisterOnSubmitStatement(btn, Page.GetType(), "confirm", "return confirm('Are you sure');");
      

      【讨论】:

      • Javascript 已启用,我在 HTML 输入按钮上得到确认框,但它在 asp:linkbutton 中不起作用
      • 这是 ​​ton > 工作吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多