2009-08-26 18 views
1

Ich möchte eine ASP.net-Seite haben, auf der der Benutzer Zeilen zu einer Rasteransicht hinzufügen kann (Sie können Werte in ein Textfeld eingeben und auf Hinzufügen klicken, um zur Rasteransicht hinzuzufügen). Durch Klicken auf eine Senden-Schaltfläche würden dann alle Zeilen in der Datenbank verbleiben.Hinzufügen von Zeilen zu temporärer GridView

Für eine Website mit wenig Verkehr, welche halbwegs einfache Lösung würden Sie empfehlen, dies zu erreichen?

Antwort

2

Ich habe das ein paar Mal getan. Die grundlegende Prämisse meiner Lösung besteht darin, dass Sie die Daten in eine lokale Sammlung laden und diese im ViewState der Seite speichern.

List<MyObject> lst = new List<MyObject>(); 

// Populate the list from the database here 

// Store this list in the ViewState 
ViewState["List"] = lst; 

Ich habe dann eine Funktion, die diese Liste dem Gridview bindet, die ich in der ersten Page_Load nennen, und jede Funktion, die diese Liste ändert:

function BindList() { 
    List<MyObject> lst = (List<MyObject>) ViewState["List"]; 
    GridView1.DataSource = lst; 
    GridView1.DataBind(); 
} 

Um ein neues Element hinzuzufügen .. .

Wenn Sie alle Elemente in der Datenbank beibehalten möchten, rufen Sie die Liste einfach aus dem ViewState ab.