Frage

ASP.NET 1.1 - Ich habe einen Datagrid auf einer ASPX-Seite, die Databound ist und zeigt einen Wert innerhalb eines Textbox. Der Benutzer kann diesen Wert ändern, dann klicken Sie auf eine Schaltfläche, wo der Code hinter grundsätzlich geht durch jede DataGridItem im Netz, funktioniert ein Findcontrol für die ID der Textbox dann den .Text Wert einer Variablen zugewiesen, die dann verwendet wird, um aktualisieren der Datenbank. Das Datagrid ist mit den neuen Werten Rebound.

Das Problem, das ich habe, ist, dass, wenn der .Text Wert der Variablen zugewiesen wird, wobei der Wert abgerufen der ursprüngliche Databound Wert und nicht der neu eingegebenen Benutzerwert. Alle Ideen, was kann dieses Verhalten verursachen?

Codebeispiel:

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
}
War es hilfreich?

Lösung

So ist das Code-Beispiel ist aus dem Button-Klick-Ereignisse?

Sind Sie sicher, dass Sie rebinding Ihre Datenquelle nicht auf Postbacks?

Andere Tipps

Wenn versuchen Sie den Wert aus dem Text abzurufen? das heißt, wenn Sie wird das Codebeispiel ausgeführt bereitgestellt werden?

Wenn Sie nicht bereits sind, werden Sie wollen eine Behandlungsmethode für das ItemCommand Ereignis des Datagrid einzurichten. Sie sollten in diesem Verfahren für den neuen TextBox Wert suchen. Sie sollten auch sicherstellen, dass Ihr Datenraster auf Postbacks nicht wieder Databound wird.

Ich würde auch sehr empfehlen Scott Mitchell ausgezeichneten Artikelserie Lesen durch das Datagrid-Steuerelement und alle von ihm über die Verwendung ist Funktionen: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top