J'ai une page ASP.NET avec un certain nombre d'instances ASP: Button sur elle. Pour certains, je dois afficher une invite de confirmation et, si l'utilisateur choisit oui, la méthode de publication d'origine est appelée. Sinon, le processus global est annulé.Comment j'interrompre une publication de bouton ASP.NET avec BlockUI et Jquery
J'ai un exemple en cours d'exécution mais je reçois des résultats incohérents, principalement dans FF3 où je reçois une exception levée:
[Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame ::
Je l'ai regardé cette erreur mais je suis en tirant une perte de où je me trompe. Voici mon exemple de cas. Note, pour l'instant j'utilise la classe css comme une recherche. À plus long terme, je peux intégrer le clientID du contrôle dans mon JS si cela s'avère nécessaire :).
fragment Html:
<asp:Button ID="StartButton" runat="server" CssClass="startbutton" Text="Start" OnClick="OnStartClicked" />
Javascript:
$(".startbutton").each(function(){
$(document).data("startclick", $(this).get()[0].click);
$(this).unbind("click");
}).click(function(){
var oldclick = $(document).data("startclick");
alert("hello");
try
{
oldclick();
}
catch(err)
{
alert(err);
alert(err.description);
}
return false;
});
Mon code est derrière relativement simple, la méthode OnStart exécute simplement un Response.Write
Je viens juste de commencer la recherche en bind, unbind et trigger donc mon utilisation ici est à peu près 'première fois'.
Merci pour toute aide ou conseil.
S
EDIT:
Cela décrit ce que je suis en train de faire et donne également une course vers le bas du genre de pièges:
http://www.nabble.com/onClick-prepend-td15194791s27240.html
Malheureusement, l'écouteur d'événement défini par asp.net (onclick = "...") sera toujours appelé, même si vous renvoyez false depuis un gestionnaire jQuery. – ybo
Merci, mais je ne sais pas comment cela fonctionnerait avec BlockUI. Je crois comprendre que je dois déclencher l'événement clic d'origine (le postback) dans mon gestionnaire oui/ok '. C'est le cas? – Simon
@ybo: Cela fonctionne très bien pour moi (ASP.NET 2.0, VS2005). Quand est-ce qu'il a échoué pour vous? @Simon: Permettez-moi de jeter un coup d'œil à la documentation de BlockUI; Je posterai du code mis à jour. – elo80ka