2016-08-03 24 views
0

Let sagen, dass ich diesen Code beim Laden der Seite von ASP.NET WebformGet Set Werte von TextBox Control von Server-Seite

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "123"; 
} 

und dies ist meine Kontrolle in aspx Datei

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 

Wenn ich Ändern Sie die Textbox Daten von 123 bis 12548 oder etwas in der Front-End und dann klicken Sie auf die Schaltfläche Jetzt ist dies in meinem Code hinter Knopf klicken Ereignis

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string s = TextBox1.Text; 
} 

Jetzt in TextBox1.Text Ich sollte 12548 oder aktualisierten Wert bekommen, stattdessen bekomme ich 123, die ich bereits in Seite geladen habe.

Jetzt möchte ich den aktualisierten Wert erhalten, wie kann ich es richtig machen.

Antwort

1

Wickeln Sie es in einem NICHT ist Postback

protected void Page_Load(object sender, EventArgs e) 
{ 
if(!IsPostBack) 
    { 
     TextBox1.Text = "123"; 
    } 
} 

oder es vollständig entfernen:

protected void Page_Load(object sender, EventArgs e) 
{ 
    //not here 
} 

<asp:TextBox ID="TextBox1" Text="123" runat="server"></asp:TextBox> 
1

die Page_Load wie folgt ändern:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostback) 
    { 
     TextBox1.Text = "123"; 
    } 
} 
0

Das Problem war, um dieses „in ASP .Net jedes Mal, wenn Sie ein Postback irgendeiner Art verursachen, einschließlich der Behandlung von Ereignissen wie Knopfklicks, arbeiten Sie mit einem brandneuen Insta nce Ihrer Seitenklasse, die von Grund auf neu erstellt werden muss. Alle Arbeiten, die Sie zuvor zum Erstellen der Seite auf dem Server ausgeführt haben, sind weg. Das bedeutet, dass Sie den gesamten Seitenlebenszyklus einschließlich des Seitenladecodes und nicht nur den Klickcode ausführen müssen.

Jedes Mal, wenn Sie ein Ereignis im Frontend ausführen, wird die Seite neu erstellt und die Paging-Methode erneut aufgerufen, und die Seite wird tatsächlich zurückgesetzt. Um dies zu vermeiden, sollte der folgende Code

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostback) 
     { 
      //default code 
     } 
    } 
verwendet werden