我使用aspnet 3.5,vs 2008,ajax 2.0,普通的旧javascript(不使用任何javascript框架)。
在asp:listview中,我有一个按钮(删除),其中包含OnClientClick =“turnrowpink(this);”
此按钮还有一个ajax 2.0 confirmmbuttonextender(你确定要删除这条记录吗?)
在你确定之前用于运行的turnrowpink功能?信息。
过去,你确定吗?会弹出,你点击删除的行以粉红色显示,以显示你要删除的行。
此后我添加了许多完全不相关的javascript函数,现在上面的代码以相反的顺序触发:
你确定吗?确认发生在第1,然后在确定,调用turnrowpink。在那一点上运行turnrowpink有点傻。为了增加对伤害的侮辱,我在turnrowpink上得到了一个javascript错误,因为parm (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>
答案 0 :(得分:1)
如果我是你,我不会使用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没有太多经验
答案 1 :(得分:1)
我有这个问题,问题是扩展器覆盖你的onclick功能而不是链接它(jQuery我们爱你)。我这样砍了它:
<asp:ImageButton ID="ImageButtonDel"
runat="server" onmousedown="TurnRowPink(this);"
ImageUrl="~/delete.GIF" CommandName="DeleteRecord"
CommandArgument='<%# Eval("tt_Pkey") %>' />