Hallo an alle,
ich hoffe, dass ich hier mit meinem Problem in der richtigen Sektion gelandet bin.
Ich benutze die Visual Web Developer 2008 Express Edition, mit dem AJAX-Toolkit und C#.
Zu einer kurzen Beschreibung meines Programms:
Ich habe ein GridView, das per Auswahl Textboxen füllt. Diese Daten, sollen dann in eine Tabelle übertragen werden, um so eine Übersicht über die hinzugefügten Positionen zu erstellen.
Danach sollen alle gesammelte Positionen in die Datenbank übertragen werden.
Das GridView, die Textboxen und die Tabelle befinden sich je in einem eigenen UpdatePanel.
Das UpdatePanel der Tabelle ist per Trigger an einen Imagebutton im TextBox-UpdatePanel gebunden.
Zum Problem:
Eine Position kann jeweils zu der Tabelle hinzugefügt werden.
Das Problem besteht darin, dass, sobald eine zweite Position hinzugefügt werden soll, die erste einfach ersetzt wird. Ich denke, dass ich da irgendwo einen Logikfehler in meinem Code habe der die Daten hinzufügen soll.
Ich habe schon einiges probiert. Mein aktueller Versuch sieht folgendermaßen aus:
protected void ImageButtonSaveOrderItem_Click(object sender, ImageClickEventArgs e)
{
int nRowCounter = 0;
int nNumRows = TableAddedItems.Rows.Count;
while (nRowCounter < nNumRows)
{
//Add existing cells
int nCellCounter = 0;
int nNumCells = TableAddedItems.Rows[nRowCounter].Cells.Count;
while (nCellCounter < nNumCells)
{
TableCell cell = new TableCell();
cell = TableAddedItems.Rows[nRowCounter].Cells[nCellCounter];
TableAddedItems.Rows[nRowCounter].Cells.Add(cell);
nCellCounter++;
}
nRowCounter++;
}
//Add new cells
TableRow oNewRow = new TableRow();
TableCell oNewProductCell = new TableCell();
TableCell oNewQuantityCell = new TableCell();
oNewProductCell.Text = TextBoxProduct.Text;
oNewQuantityCell.Text = TextBoxOrderQuantity.Text;
oNewRow.Cells.Add(oNewProductCell);
oNewRow.Cells.Add(oNewQuantityCell);
TableAddedItems.Rows.Add(oNewRow);
/*int totalQuantity;
totalQuantity = Convert.ToInt32(cellTotalQuantity.Text);
totalQuantity = totalQuantity + Convert.ToInt32(TextBoxOrderQuantity.Text);
cellQuantity.Text = totalQuantity.ToString();*/
}
Alles anzeigen
Danach sollen die Daten noch in eine MSSQL Datenbank gespeichert werden. Meine Frage dazu:
Wie kann ich die Daten am besten sammeln, um sie dann in die Datenbank zu speichern?
Ein Array fällt als Möglichkeit weg, da die Länge dynamisch bleiben muss. Käme noch eine Arraylist in Frage. Das hatte ich auch schon zu implementieren versucht. Allerdings besteht ja das Problem, dass die List bei jedem PostBack neu erstellt wird und so die Daten verloren gehen.
Vielen Dank schon im Voraus für eure Hilfe.
Gruß
Mir nicht