我使用的是 aspnet 3.5,对比 2008,ajax 2.0,普通的旧 javascript(不使用任何 javascript 框架)。
在 asp:listview 中我有一个带有 OnClientClick= "turnrowpink(this);"的按钮(删除)
我还有一个用于此按钮的 ajax 2.0 confirmbuttonextender(您确定要删除此记录吗?)
turnrowpink 函数用于在您确定之前运行吗?信息。
以前是什么时候确定?会弹出,您单击要删除的行显示为粉红色,以明确您要删除的行。
我已经添加了很多完全不相关的 javascript 函数,现在上面的代码以相反的顺序触发:
你确定吗?第一次确认,然后 ok,调用 turnrowpink。那时运行 turnrowpink 有点傻。雪上加霜的是,我在 turnrowpink 上遇到了一个 javascript 错误,因为参数 (this) 似乎此时已设置为其他内容。
那么,我如何强制 turnrowpink 先开火?
我意识到事情是异步完成的,但它曾经有效。
代码如下:
这是在 ListView 项模板中:
<td>
<asp:ImageButton ID="ImageButtonDel"
runat="server" OnClientClick="TurnRowPink(this);"
ImageUrl="~/delete.GIF" CommandName="DeleteRecord"
CommandArgument='<%# Eval("tt_Pkey") %>' />
</td>
这是 ConfirmButtonExtender,也在 ListView 项模板中:
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1"
ConfirmText="Are you sure you want to delete this record?"
runat="server" TargetControlID="ImageButtonDel">
</cc1:ConfirmButtonExtender>
最佳答案
我有这个问题,问题是扩展器覆盖了你的 onclick 函数而不是链接它(jQuery 我们爱你)。我像这样破解它:
<asp:ImageButton ID="ImageButtonDel"
runat="server" onmousedown="TurnRowPink(this);"
ImageUrl="~/delete.GIF" CommandName="DeleteRecord"
CommandArgument='<%# Eval("tt_Pkey") %>' />
关于asp.net - Ajax ConfirmButtonExtender 在 OnClientClick javascript 代码之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1215082/