Vous ne pouvez pas appeler une méthode dans le code derrière une classe Page
pour mettre à jour les contrôles dans une page affichée. L'instance de la classe Page
existe uniquement lorsque la page est rendue, une fois que la page est affichée dans le navigateur, l'objet Page
n'existe plus. La propriété PreviousPage est utilisée lorsque vous faites un post d'une page à une autre, mais elle ne contient pas l'objet Page
utilisé pour rendre la page, il contient un objet Page
recréé qui ne sera pas utilisé pour le rendu. rien du tout. Vous pouvez uniquement l'utiliser pour lire les informations des champs en fonction des informations qui y ont été publiées. Si vous souhaitez mettre à jour la page d'ouverture, vous devez soit le faire du côté client en utilisant Javascript(), soit recharger la page afin que le code côté serveur puisse la repeupler. Une combinaison de ces deux serait d'utiliser AJAX pour mettre à jour la page.
Edit:
Vous pouvez par exemple utiliser JavaScript pour accéder à l'ouvre-porte et modifier le contenu d'un élément:
window.opener.document.getElementById('Info').innerHTML = 'updated';
Vous pouvez également appeler une fonction Javascript dans la page d'ouverture:
window.opener.doSomething('data');
Cela vous donne plus de possibilités, comme faire un appel AJAX pour charger des données du serveur.
Guffa, pourrais-je dire que la propriété PreviousPage est utilisée juste pour collecter la date sur la page d'ouverture, mais pas pour la mettre à jour? Vous avez dit, utilisez Javascript pour le faire, pourriez-vous expliquer cela plus? – Ahmed
Oui, PreviousPage crée un nouvel objet Page contenant des données telles que ViewState et des données de formulaire, mais il n'a aucun lien avec la page affichée dans le navigateur. J'ai ajouté quelques exemples Javascript à la publication. – Guffa