Archive for décembre 2005
Comment résoudre le problème du « double-clic » en asp.net
Une méthode générique pour pallier au problème du « double-clic » quand un utilisateur double clique au lieu de simplement cliquer une fois pour valider un formulaire, ce qui risque de le soumettre 2 fois. Pour contourner ça, le bouton qui a été cliqué est caché une fois que l’utilisateur a cliqué dessus.
Pour que ça fonctionne avec tous les formulaires, la bidouille est appliqué au niveau de l’évènement Render de la page.
protected override void Render(HtmlTextWriter output) {
// Get normal html ouput
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringBuilder.ToString();
// Enhance submit buttons
string onclick1 = "\"if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();";
string onclick2 = "\"this.style.display='none';";
html = html.Replace("onclick=" + onclick1, "onclick=" + onclick2 + onclick1.Substring(1));
// Render updated html
output.Write(html);
}
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/975)
Correction problème double click
Certains utilisateurs cliquent plusieurs fois sur le bouton [OK] (à cause d’un problème de souris ou parce qu’ils ont l’habitude de double-cliquer pour valider). Lorsque l’on ne teste pas si les données saisies sont uniques (cas des messages d’un forum par exemple), cela conduit à créer deux enregistrements au lieu d’un.
Pour contourner ce problème, le bouton de validation est caché via l’évènement client « onclick ». Et pour éviter de mettre à jour les boutons de chaque formulaire, la modification est gérée de façon globale au niveau de l’évènement serveur « Render » de default.aspx.cs :
protected override void Render(HtmlTextWriter output) {
// Get normal html ouput
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringBuilder.ToString();
// Enhance submit buttons
string onclick1 = "\"if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();";
string onclick2 = "\"this.style.display='none';";
html = html.Replace("onclick=" + onclick1, "onclick=" + onclick2 + onclick1.Substring(1));
// Render updated html
output.Write(html);
}
Note: la modification de default.aspx.cs est suffisante étant donné qu’il s’agit de la seule « vrai » page de Quick-Content et que toutes les autres pages ne sont que de l’url rewriting.
Voir aussi : How to work around the « double-click » problem
Générer GoogleSearchService.dll à partir de GoogleSearch.wsdl
Pour générer la source C#, taper :
wsdl GoogleSearch.wsdl
Cele crée un fichier GoogleSearchService.cs, à compiler par :
csc /target:library GoogleSearchService.cs
Ou pour Mono par :
mcs /target:library GoogleSearchService.cs
Ce qui produit l’assembly : GoogleSearchService.dll
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/976)
Vit’o Bureau
Un exemple de site très simple réalisé sous Quick-Content et dont le code XHTML est intégralement validé (à l’exeption de la publicité Google 🙂 : Vit’o Bureau qui livre votre repas sur le lieu de travail.
Ce billet est essentiellement destiné à tester ce que donne un lien depuis un blogue obscur en matière de référencement.
Mise à jour (16/12/2005) : avant les vacances, un lien vers le site de Frédéric sur Condrieu et sous Quick-Content 🙂
Amélioration XxxxxxSearch – étape 2
- Meilleure prise en compte de la recherche en mode GET via le paramètre « query »,
- L’extrait du contenu est désormais présenté dans un élément «blockquote»,
- Le lien affiché après l’extrait est intégré dans une balise «span» pour pouvoir lui appliquer un style particulier.