2010-07-08 2 views
0

J'ai un lien hypertexte dans mon projet Silverlight. En cliquant sur le lien s'ouvre l'URL dans une nouvelle page:Le déclenchement de la requête asynchrone (statistiques) de HyperlinkButton n'est pas enregistré

<HyperlinkButton x:Name="Button1" Content="Click" 
    TargetName="_blank" Click="Button1_Click" 
    NavigateUri="http://www.example.com" /> 

Lorsque je clique sur le bouton, je veux un (deuxième) demande asynchrone à être tiré sur un serveur de statistiques:

private void Button1_Click(object sender, RoutedEventArgs e) 
{ 
    WebClient webClient = new WebClient(); 
    webClient.Headers["content-type"] = "application/x-www-form-urlencoded"; 
    webClient.Encoding = Encoding.UTF8; 
    webClient.UploadStringAsync(destURI, "POST", "action=click" + 
     "&id=" + id); 
} 

Cependant, si je vérifie avec FireBug, cette demande n'est jamais tirée. Comment puis-je faire fonctionner cette requête?

Remarque: J'ai déjà vérifié que la page de destination peut recevoir des demandes. La destination a une adresse correcte clientaccesspolicy.xml et crossdomain.xml.

Répondre

0

Argh. Le problème est avec Firebug. La fenêtre du navigateur perd le focus et les requêtes ne sont plus capturées. Wireshark montre que la requête se déclenche correctement.

0

NavigateUri semble avoir la priorité sur la cuisson du gestionnaire d'événements pour Click, donc ce que vous devez faire est de retirer le NavigateUri, et tout gérer dans l'événement Click lui-même.

Vous pouvez utiliser la fonction HtmlPage.Window.Navigate() pour générer une nouvelle fenêtre en définissant la cible sur _blank, un peu comme vous l'avez fait dans le code XAML pour HyperlinkButton.

+0

Je l'ai fait avant. Cela semble déclencher le bloqueur de popup de Firefox. L'utilisation de NavigateUri ne fonctionne pas. En outre, attacher le débogueur Visual Studio m'indique que la méthode de clic est appelée, donc je ne sais vraiment pas pourquoi je ne vois pas la demande. – Scharrels

Questions connexes