Pourquoi mon enregistrer utilisez la valeur initiale de ma zone de texte et non pas la valeur entrée?
J'ai une zone de texte sur mon site:
<asp:TextBox ID="Latitude" runat="server" ClientIDMode="Static" ></asp:TextBox>
Au chargement de la page je remplir cette zone de texte avec quelque chose d'un databse:
protected void Page_Load(object sender, EventArgs e)
{
Latitude.Text = thisPlace.Latitude;
}
Lorsque je veux mettre à jour mon databse avec une nouvelle valeur dans cette zone de texte, il encore mis à jour la base de données avec le un mettre en au chargement de la page:
protected void Save_Click(object sender, EventArgs e)
{
setCoordinates(Latitude.Text);
}
Comment puis-je m'assurer que setCoordinates()
récupère la nouvelle valeur dans la zone de texte et non pas la valeur initiale de la base de données de Latitude.Text = thisPlace.Latitude;
?
- D'où appelez-vous
setCoordinates
? - Où êtes-vous appeler
setCoordinates()
à partir de?
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est parce Publication
Si vous appelez
setCoordinates()
sur certains événement click du bouton zone de texte de la nouvelle valeur sera perdu. Si c'est le droit de modifierPage_Load
comme celui-ciC'est parce que le
Page_Load
événement se produit avant votre méthodesetCoordinates
est appelé. Cela signifie que la Latitude.Valeur du texte est le même qu'avant.Vous devriez changer la fonction de charge de sorte qu'il ne permet pas toujours de définir la valeur initiale de la zone de texte.
Par l'évolution de l'événement page_load
!Page.IsPostBack
, la seule fois où la valeur initiale est donnée, c'est la première fois que la page est à l'origine des charges.Page_Load
exécuté à chaque fois que la page est chargée. AjouterIsPostBack
vérifier pour réinitialiser texte uniquement sur la première page de chargement:Vérifier si la page est dans la publication sinon, la valeur sera remplacée avant de l'enregistrer
Vous avez besoin pour obtenir des informations de la requête, plutôt que d'utiliser la propriété comme ça:
Ce qui se passe si vous chargez les valeurs initiales de tous les plus de nouveau.