2008-12-04 4 views
0

Il y a quelques mois, je l'ai programmé un ASP.NET GridView avec une coutume "Supprimer" LinkButton et JavaScript côté client Confirmation selon cet article msdn:ASP.NET GridView "Confirmation côté client lors de la suppression" cessé de travailler sur IE - comment se fait-il?

http://msdn.microsoft.com/en-us/library/bb428868.aspx (publié en Avril 2007)

ou par exemple Javascript before asp:ButtonField click

Le code ressemble à ceci:

<ItemTemplate> 
    <asp:LinkButton ID="deleteLinkButton" runat="server" 
    Text="Delete" 
    OnCommand="deleteLinkButtonButton_Command" 
    CommandName='<%# Eval("id") %>' 
    OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>' 
    /> 
</ItemTemplate> 

Étonnamment, "Annuler" ne fonctionne pas plus avec mon-à-dire (Version: 6.0.2900.2180.xpsp_sp2_qfe.080814-1242) - il supprime toujours la ligne. Avec Opera (Version 9.62), il fonctionne toujours comme prévu et décrit dans l'article msdn. Plus étonnant, sur la machine d'un collègue de travail avec la même version ie, cela fonctionne toujours ("Annuler" ne supprimera pas la ligne).

Le code généré ressemble

<a onclick="return confirm(...);" href="javascript:__doPostBack('...')"> 

Comme confirmation (...) retourne false sur "Annuler", j'attends l'événement __doPostBack dans le href de ne pas tirer. Existe-t-il des paramètres étranges, c'est-à-dire que j'ai accidentellement changé? Quoi d'autre pourrait être la cause de ce comportement étrange? Ou est-ce un "s'il vous plaît réinstaller WinXP" problème?

Répondre

1

Essayez ceci:

<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False" 
    CommandName="Delete" Text="Delete" 
    OnClientClick="return confirm('Delete Id : '<%# (string)Eval('id')%>')" > 

</asp:LinkButton> 
0

enfin trouvé une solution à http://forums.asp.net/t/1161858.aspx

Dans ce fil, la racine du problème a finalement été attribué à "La cause était filtre McAfee Phising".

J'ai dû remplacer cette ligne cryptique la ligne évidente

OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>' 

(Je devais aussi enquêter sur la façon d'échapper à des accolades), comme « event.returnValue = false; fait une différence »:

OnClientClick='<%# Eval("zahlungid", "if(confirm(\"Delete Id {0}?\")==false){{event.returnValue=false;return false;}}else{{return true;}}") %>' 
Questions connexes