2 Stimmen

Wie man einen geänderten Wert von databound Textbox innerhalb datagrid abrufen

ASP.NET 1.1 - Ich habe ein DataGrid auf einer ASPX-Seite, die databound ist und zeigt einen Wert in einem Textfeld. Der Benutzer ist in der Lage, diesen Wert zu ändern, dann klicken Sie auf eine Schaltfläche, wo der Code dahinter im Grunde durchläuft jedes DataGridItem im Raster, tut ein FindControl für die ID des Textfeldes dann weist den Text-Wert eine Variable, die dann verwendet wird, um die Datenbank zu aktualisieren. Das DataGrid wird mit den neuen Werten neu gebunden.

Das Problem, das ich habe, besteht darin, dass beim Zuweisen des Textwerts an die Variable der ursprüngliche databound-Wert und nicht der neu eingegebene Benutzerwert abgerufen wird. Haben Sie eine Idee, was die Ursache für dieses Verhalten sein könnte?

Code-Beispiel:

foreach(DataGridItem dgi in exGrid.Items)
{
    TextBox Text1 = (TextBox)dgi.FindControl("TextID");
    string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
    // do stuff with the new value
}

0voto

Ryan Sampson Punkte 6537

Also das Code-Beispiel ist von Ihrer Schaltfläche Klick-Ereignis?

Sind Sie sicher, dass Sie Ihre Datenquelle beim Postback nicht neu binden?

0voto

Adam Weber Punkte 2375

Wann versuchen Sie, den Wert aus der TextBox abzurufen, d. h. wann wird das von Ihnen angegebene Codebeispiel ausgeführt?

Falls noch nicht geschehen, sollten Sie eine Handler-Methode für das ItemCommand-Ereignis des DataGrid einrichten. In dieser Methode sollten Sie nach dem neuen TextBox-Wert suchen. Sie sollten auch sicherstellen, dass Ihr DataGrid beim Postback nicht erneut an die Daten gebunden wird.

Ich würde auch empfehlen, die ausgezeichnete Artikelserie von Scott Mitchell über die Verwendung des DataGrid-Steuerelements und aller seiner Funktionen zu lesen: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X