J'ai des problèmes majeurs en utilisant UpdatePanels sur un site Web. Le problème est que lorsque j'utilise ScriptManager, tout le JavaScript côté client qui était actif lors du chargement initial de la page est perdu une fois qu'un panneau de mise à jour est publié.ASP.Net ScriptManager et UpdatePanel ignorant javascript une fois posté
Voici ce que je suis en train de faire ...
J'ai un certain nombre de contrôles de calandre .net sur la même page chacun dans son propre panneau de mise à jour. Les calendriers sont initialement masqués, jusqu'à ce que vous cliquiez dans une zone de texte associée (également dans le panneau de mise à jour), à ce moment-là le calendrier apparaît afin que vous puissiez sélectionner une date. Les calendriers fonctionnent très bien jusqu'à ce que vous changiez réellement la date (post-retour), après quoi les calendriers n'apparaissent plus lorsque vous cliquez dans les zones de texte, le JavaScript "onfocus" est perdu. Après avoir regardé google pendant quelques heures, je peux obtenir des choses semi-fonctionnelles en ajoutant dynamiquement un attribut "onfocus" à la TextBox et en enregistrant le script de démarrage avec le ScriptManager quand le calendrier est publié.
Exemple:
TextBox1.Attributes.Add("onfocus", "document.getElementById('searchArrivalDateCalendarDiv').style.display = 'block';")
ScriptManager.RegisterStartupScript(Page, GetType(Page), "StopTxtClick", "$(document).ready(function(){$('.txtArrivalDate').click(function(event){event.stopPropagation(); $('div.searchArrivalDateCalendarDiv').show(); });});", True)
Cela semble vraiment peu pratique, surtout quand je présente une page maître. Je vais devoir réenregistrer un tas de scripts de démarrage.
Il doit y avoir un moyen plus facile?