2010-10-20 10 views
1

J'ai recherché haut et bas pour résoudre ce problème. J'espère que quelqu'un ici peut expliquer !!Ignore/désactive la commande usercontrol si javascript est activé

Je crée un usercontrol qui utilise les contrôles web .NET, mais je veux créer une expérience utilisateur plus fluide en évitant les postbacks complets, donc j'écris quelques JQUERY pour capturer des événements click sur le client et faire ainsi le traitement sans aller retour au serveur.

 $("#tblLedgerEntries :checkbox").click(function() { 
      var value1 = $(this).closest("tr").find("td.invoiceAmount").html(); 
      var value2 = $('#<%=hdnTotalToPay.ClientID%>').html(); 
      CalculateTotalPayable(value1, value2, $(this).attr("checked")); 
     }); 

Tout va bien. Maintenant, quelqu'un vient sur mon site avec javascript DISABLED. Supposons que je puisse détecter si javascript est activé ou non. Dans cette situation, je devrais faire les calculs que je faisais sur le client sur le serveur, ce qui signifie que je dois déclencher une publication ...

Comment faire ceci ..... Je veux seulement déclencher une publication complète si javascript est désactivé. Je veux utiliser le script client si javascript est activé. Si cela s'applique aux cases à cocher (l'interface utilisateur recalcule un montant payable chaque fois qu'un utilisateur clique sur une case à cocher), la seule façon de déclencher une publication est d'utiliser AutoPostBack = True .... mais cela fera toujours une publication du script client ..... arghhh. Quelqu'un sait-il comment faire .... ou est-ce que je m'approche de cela du mauvais angle?! ??

Cordialement

Richard

Répondre

4

AutoPostBack = true est implémenté via javascript. Donc, si l'utilisateur a javascript désactivé, cela ne fonctionnera pas non plus. La seule façon d'obtenir un PostBack quand JavaScript est désactivé est avec un usercontrol qui est rendu au client en tant que <input type="submit" /> car cela entraîne le navigateur à publier le formulaire. Les contrôles serveur qui affichent des liens javascript:__doPostBack() ne fonctionneront pas.

0
$("#btnSave").attr('disabled', true); 
+1

ajouter quelques commentaires à comprendre .. – bgs

+0

Check it out: http://stackoverflow.com/a/19225742/2854760 – Raj