Obtenir le texte / la valeur de la zone de texte après la modification de la valeur / du texte côté serveur

J’ai un FormView avec des données ( DataSource , DataBind ) que je remplis avec value='' , mais après avoir modifié le texte dans la zone de texte et TextBox sur le bouton de mise à jour, je vois la même valeur qu’avant, je ne peux pas voir la nouvelle valeur que j’ai tapée.

Qu’est-ce qui me manque ici?

mon html

   
  • <input id="txt_Name" runat="server" value=''>
  • Du côté serveur

     protected void Page_Load(object sender, EventArgs e) { using (DB_MikaDataContext data = new DB_MikaDataContext()) { MainFormTemplate.DataSource = data.File_Projects.Where(x => x.Num_Tik.Equals("12")).ToList(); MainFormTemplate.DataBind(); } } public void btn_Update_Click(object sender, EventArgs e) { //using System.Web.UI.HtmlControls HtmlInputText twt = (HtmlInputText)MainFormTemplate.FindControl("txt_Name"); ssortingng text = twt.Value;//i see old value ,not new one that i typed in text box } 

    Dans chaque postback , vous obtenez toujours l’ancienne valeur de votre firebase database. La solution consiste à vérifier si la page est rendue pour la première fois ( !IsPostBack ), puis définissez la MainFormTemplate de MainFormTemplate votre MainFormTemplate si elle est chargée en réponse à une publication ( IsPostBack ), obtenez la txt_Name de txt_Name la txt_Name suivante:

     HtmlInputText twt; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DB_MikaDataContext data = new DB_MikaDataContext()) { MainFormTemplate.DataSource = data.File_Projects.Where(x => x.Num_Tik.Equals("12")).ToList(); MainFormTemplate.DataBind(); } } else { twt = MainFormTemplate.FindControl("txt_Name") as HtmlInputText; } } protected void btn_Update_OnClick(object sender, EventArgs e) { ssortingng text = twt.Value; // You will get the new value } 

    avec Page_Load exécutant chaque postback , vous écrivez toujours une valeur depuis la firebase database (?) et la valeur envoyée depuis le navigateur est perdue (même si elle existe toujours dans le membre Page.Request.Form ).

    Dans ASP.NET, lorsqu’une page est soumise, l’événement Page_Load s’exécute avant l’événement click du bouton. Ainsi, la valeur de la textbox est repeuplée avec sa valeur d’origine avant que l’événement click ne le regarde

    Si tel est le cas, vous pouvez alors envelopper le code qui atsortingbue la valeur à la textbox de textbox dans un bloc if comme celui-ci:

     if (!IsPostBack) { HtmlInputText twt = (HtmlInputText)MainFormTemplate.FindControl("txt_Name"); ssortingng text = twt.Value; } 

    J’espère que cela vous aide.