2013-02-07 1 views
0

J'ai un formulaire ASPX avec un objet TextBox.Valeur ASPX Textbox inchangée s'il existe des données antérieures

Il est défini dans le code sous-jacent comme public TextBox UI_Delegate1; et sous la forme ASPX comme <ASP:TextBox id="UI_Delegate1" runat="server" />

Au membre Page_Load dans le code derrière, je fais la mission:

UI_Delegate.Text = "AnyText"; 

Le rendu du texte HTML pour ce contrôle est la suivante:

<input name="UI_Delegate1" type="text" value="AnyText" id="UI_Delegate1" /> 

Dans la forme, j'ai un bouton avec cette définition:

<button type="submit" onserverclick="SubmitChanges" runat="server">Submit Changes</button> 

type I puis le texte dans la zone de texte, de modifier la valeur « AnyText » à un autre texte, puis cliquez sur le bouton Soumettre des modifications, mais la valeur de UI_Delegate1.Text dans le code derrière membre SubmitChanges après avoir cliqué sur le le bouton continue d'être "AnyText", peu importe ce que je tape. En d'autres termes, il semble que ASPX considère ce contrôle comme étant en lecture seule, mais je n'ai pas défini un tel attribut nulle part.

Quelles pourraient être les causes de ce problème?

+1

Est-ce code exécuté uniquement sur la charge de la page initiale? 'UI_Delegate.Text =" AnyText ";' c'est-à-dire est-il placé dans le bloc 'if (! IsPostBack)'? –

+0

Le code qui initialise la propriété TextBox Text est placé dans protected void Page_Load (expéditeur d'objet, System.EventArgs e). Il n'y a pas de bloc if (! IsPostBack) dans Page_Load. – Pep

+0

@Yuriy a la bonne idée ... vous devez vous assurer que vous ne définissez du texte que si la page n'a pas été retournée à elle-même. –

Répondre

3

Comme l'a dit @Yuriy, effectuez les modifications suivantes dans Page_Load:

if(!IsPostBack) 
{ 
    UI_Delegate1.Text = "AnyText"; 
} 
+0

Il me semble que PostBack ne fonctionne pas, mais cela corrige définitivement le problème. – Pep

+0

Voir mon commentaire sur la question d'origine pour plus d'informations ... –

Questions connexes