J'expérimente maintenant AJAX. J'ai un contrôle personnalisé qui apparaît sur ma page maître dans lequel il y a un panneau de mise à jour et une minuterie. La minuterie se déclenche et le panneau se met à jour et tout est dandy. Sauf qu'il y a certaines opérations que je ne veux pas qu'il fasse à chaque rafraîchissement. Il semble que le cycle de vie complet de la page se produise à chaque actualisation. Il y a des variables que je veux définir, et garder leur valeur sur l'actualisation. Y at-il un moyen de le faire SEULEMENT ce qui est dans l'appel de timer_tick?C# updatepanel avec timer Page_load
Répondre
UpdatePanels force toujours l'actualisation de toute la page. Si vous voulez seulement traiter une certaine partie de la page (et c'est une taille fixe), vous pouvez essayer d'utiliser un iframe.
Alternativement, si vous souhaitez enregistrer les variables que vous pouvez les mettre dans ViewState ou SessionState afin qu'ils persistaient entre postbacks
Vous pouvez jeter un oeil sur requête [ « __ eventtarget »] en cas de chargement de la page pour voir ce que le contrôle a causé la publication. Si c'est le contrôle de la minuterie, sautez hors de la fonction.
En supposant que votre minuterie est appelée « refreshtimer »:
protected void Page_Load(object sender, EventArgs e)
{
if (Request["__EVENTTARGET"] == "refreshtimer")
{
return;
}
// etc
Je ne sais pas ce qu'est un poste de AJAX.Net regarde en arrière comme, mais je protège habituellement mes autres contrôles et le contenu en vérifiant après retour;
protected void Page_Load(object sender, EventArgs e)
{
// if its a post back then my controls should already be setup...
if (!Page.IsPostBack)
{
InitControlData();
}
}
puis il devrait tomber à votre gestion des événements?
protected void timer_tick(object sender, EventArgs e)
{
// Do my Ajaxy work~
}
Ceci n'est pas possible avec UpdatePanels ... la totalité de la page traversera tout le cycle de vie. Comme d'autres l'ont mentionné, vous pouvez limiter le traitement qui se produit en utilisant IsPostBack ou IsInAsyncPostBack de ScriptManager, mais en fin de compte cela ne va pas être une excellente solution pour les pages complexes. Cependant, vous pouvez utiliser les méthodes Page pour exécuter une seule méthode statique dans votre page, mais vous devrez effectuer vous-même l'appel JavaScript et mettre à jour l'interface utilisateur. Voici quelques exemples:
- 1. C Timer Callback
- 2. javascript timer
- 3. Remplacer UpdatePanel avec JQuery
- 4. gérer l'événement avant Page_Load
- 5. NullReferenceException sur Page_Load
- 6. Page_Load frappe deux fois
- 7. NullReferenceException dans Page_Load
- 8. jQuery Timer itératif
- 9. VB.NET Timer question
- 10. Obtention d'une valeur de contrôles dynamiques après Page_Load en C#?
- 11. .NET Timer - Nettoyage de ressources
- 12. Timer ne "boucle" pas
- 13. meilleure approche Timer en C# application batch console
- 14. ASP.NET Javascript Timer
- 15. Basic wxWidgets Timer
- 16. Quel .Net Timer() utiliser
- 17. Java Timer vs ExecutorService?
- 18. Complexe MySQL Timer
- 19. Utiliser ASP.NET AJAX UpdatePanel avec des gestionnaires
- 20. C# Timer/Event Race - Vider le thread de minuteurs
- 21. C# Timer Class - Arrêt après un certain nombre d'exécutions
- 22. ASP.NET: recherche d'un événement click dans page_load
- 23. Meilleures pratiques: ENTER_FRAME vs Timer
- 24. EJB JMS Timer, un échantillon?
- 25. Problème ShowDialog, PropertyGrid et Timer
- 26. Temporisations .Net: WaitForSingleObject vs Timer
- 27. Formview et MS-Ajax UpdatePanel
- 28. ASP.AJAX UpdatePanel - probablement lié au mappage d'application
- 29. Accès UpdatePanel à l'intérieur Vue d'un autre UpdatePanel ASP.Net
- 30. Désactivation et réactivation d'un contrôle Timer asp.net en utilisant JavaScript
Quel est le code timer_tick fait? –