OnClientClick不适用于asp.net LinkBut​​ton

时间:2013-04-30 06:20:07

标签: c# asp.net linkbutton onclientclick

我有一个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>

这两种方法都不起作用。

任何人都可以为此提供一些解决方案。

6 个答案:

答案 0 :(得分:3)

  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;" 

答案 1 :(得分:2)

可能还有一些其他页面元素阻止此事件被触发。

您是否有其他可能会干扰的页面元素?您是否尝试删除所有其他页面元素但是这个?你有一些可能会干扰的AJAX调用吗?你试过一个简单的html元素(不是asp.net)吗?

你最有可能在链接按钮上做得很好,但似乎问题在其他地方。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

像这样使用

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

并在客户端点击如下

OnClientClick="return javascript:Navigate()"

甚至

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

 OnClientClick="return Navigate()"

答案 4 :(得分:0)

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

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

How to enable JavaScript in a web browser?

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

注册脚本

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

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

答案 5 :(得分:0)

好像你已经在IE中禁用了javascript。只需启用它&amp;你已准备好出发。您可以按照这篇文章在IE中启用/禁用javascript:

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