【问题标题】:Ajax ConfimButtonExtender firing before OnClientClick javascript code在 OnClientClick javascript 代码之前触发 Ajax ConfimButtonExtender
【发布时间】:2009-07-31 21:58:49
【问题描述】:

我使用的是 aspnet 3.5,与 2008 相比,ajax 2.0,普通的旧 javascript(不使用任何 javascript 框架)。

在 asp:listview 中,我有一个带有 OnClientClick= "turnrowpink(this);" 的按钮(删除)

我也有这个按钮的 ajax 2.0 确认按钮扩展器(你确定要删除这条记录吗?)

之前运行的turnrowpink函数你确定吗?信息。

以前是这样,你确定吗?会弹出,您单击删除的行显示为粉红色,以明确您要删除的行。

我已经添加了很多完全不相关的 javascript 函数,现在上面的代码以相反的顺序触发:

你确定吗?第一次确认发生,然后 on ok,调用 turnrowpink。在这一点上运行 turnrowpink 有点愚蠢。雪上加霜的是,我在 turnrowpink 上收到了一个 javascript 错误,因为此时参数 (this) 似乎已设置为其他内容。

那么,我如何强制 turnrowpink 先开火?

我意识到事情是异步完成的,但它曾经可以工作。

代码如下:

这是在列表视图项模板中:

<td>
   <asp:ImageButton ID="ImageButtonDel" 
   runat="server" OnClientClick="TurnRowPink(this);"
   ImageUrl="~/delete.GIF" CommandName="DeleteRecord" 
   CommandArgument='<%# Eval("tt_Pkey") %>' />
</td>

这是 ConfirmButtonExtender,也在列表视图项模板中:

<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" 
 ConfirmText="Are you sure you want to delete this record?"  
   runat="server" TargetControlID="ImageButtonDel">
</cc1:ConfirmButtonExtender>

【问题讨论】:

  • 您能否包含一些代码,特别是 aspx 标记中的 asp:listview 以及可能的 turnrowpink(obj) javascript 函数?

标签: asp.net javascript visual-studio ajax visual-studio-2008


【解决方案1】:

我遇到了这个问题,问题是扩展程序覆盖了你的 onclick 函数而不是链接它(jQuery 我们爱你)。我像这样绕过它:

<asp:ImageButton ID="ImageButtonDel" 
   runat="server" onmousedown="TurnRowPink(this);"
   ImageUrl="~/delete.GIF" CommandName="DeleteRecord" 
   CommandArgument='<%# Eval("tt_Pkey") %>' />

【讨论】:

    【解决方案2】:

    如果我是你,我不会使用 ConfirmButtonExtender。您使用它的方式是弹出一个确认消息框,手动操作更容易。

    将您的 OnClientClick 属性更改为:

    OnClientClick="return TurnRowPink(this);"
    

    那么您的 TurnRowPink 函数将如下所示:

    function TurnRowPink(obj){
      /*
      * Turn row pink logic here
      */
    
      if(Confirm("Are you sure you want to delete this record?")){
        // Any logic you may need for if they click "OK"
        return true;
      }
      else{
        // Any logic you may need if they click "Cancel", such as change back from pink to prior color
        return false;
      }
    }
    

    这是未经测试的代码,但我相信它会起作用,虽然我对 ImageButtons 没有太多经验

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2019-03-26
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      相关资源
      最近更新 更多