几个月前,我根据这篇msdn文章编写了一个带有自定义“删除”LinkButton和客户端JavaScript确认的ASP.NET GridView:
http://msdn.microsoft.com/en-us/library/bb428868.aspx(2007年4月发布)
或者例如Javascript before asp:ButtonField click
代码如下所示:
<ItemTemplate>
<asp:LinkButton ID="deleteLinkButton" runat="server"
Text="Delete"
OnCommand="deleteLinkButtonButton_Command"
CommandName='<%# Eval("id") %>'
OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>'
/>
</ItemTemplate>
令人惊讶的是,“取消”不再适用于我的ie(版本:6.0.2900.2180.xpsp_sp2_qfe.080814-1242
) - 它总是删除该行。使用Opera(版本9.62),它仍然可以在msdn文章中使用和描述。更令人惊讶的是,
在具有相同ie版本的同事的机器上,它仍然有效(“取消”不会删除该行)。
生成的代码看起来像
<a onclick="return confirm(...);" href="javascript:__doPostBack('...')">
由于confirm(...)在“取消”时返回false,我希望不会触发href中的__doPostBack事件。是否有任何奇怪的设置我不小心可能已经改变了?还有什么可能是造成这种奇怪行为的原因?或者这是“请重新安装WinXP”问题吗?
答案 0 :(得分:1)
试试这个:
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete"
OnClientClick="return confirm('Delete Id : '<%# (string)Eval('id')%>')" >
</asp:LinkButton>
答案 1 :(得分:0)
最后在http://forums.asp.net/t/1161858.aspx
找到了解决方案在该主题中,问题的根源最终被分配给“原因是McAfee Phising Filter”。
我必须更换明显的线
OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>'
这个神秘的线(我还必须研究如何逃避花括号),因为“event.returnValue = false;有所作为”:
OnClientClick='<%# Eval("zahlungid", "if(confirm(\"Delete Id {0}?\")==false){{event.returnValue=false;return false;}}else{{return true;}}") %>'