2009-05-14 9 views
0

Ich muss die Elementid aus der Liste der Zeilen hinzufügen, wenn ich in der Gridview auf "In den Warenkorb" klicken, konnte ich diese Elementid an eine Arraylist übergeben.Hinzufügen von Elementen zu einer Arraylist, wenn auf eine Schaltfläche in der Gridview geklickt wird

Aber das Problem ist, dass jedes Mal, wenn ich auf die Schaltfläche klicke, die vorherige itemid mit dem neuen Element überschrieben wird, stattdessen möchte ich die arraylist erweitern.

public partial class Drama_k : System.Web.UI.Page 
{ 
    string [email protected]"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ewap_k.mdf;Integrated Security=True;User Instance=True"; 
    ArrayList arrValues = new ArrayList(4); 

protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName=="AddToCart") 
     { 
      int index = Convert.ToInt32(e.CommandArgument); 
      Session["item"] = GridView2.DataKeys[index].Value.ToString(); 
      arrValues.Add(Session["item"]); 
      GridView1.DataSource = arrValues; 
      GridView1.DataBind(); 
     } 
    } 
} 

Antwort

1

nicht vergessen, dass die Arraylist nicht irgendwo gespeichert ist, haben Sie es in der Sitzung des Benutzers zu speichern und auf jedem Postback durch den Knopf verursacht es aus der Sitzung abrufen und das Element durch den Benutzer angeklickt hinzufügen.

Edit: Hier ist ein kleines Beispiel, wie Sie die ArrayList in der Sitzung speichern und bei jedem Postback abrufen sollten.

public partial class _Default : System.Web.UI.Page 
{ 
    ArrayList array; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(Session["array"] == null) 
     { 
      array = new ArrayList(); 
      Session.Add("array", array); 
     } 
     else 
      array = Session["array"] as ArrayList; 
     GridView1.DataSource = array; 
     GridView1.DataBind(); //Edit 2 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     array.Add(DateTime.Now); 
    } 
} 

Wenn Sie noch Fragen haben, lassen Sie es mich wissen.

+0

tut mir leid, mein Wissen in C# ist nicht so gut. Wie genau sollte ich dies tun? danke – pier

+0

ist es wie diese Session ["item"] = arrValues; – pier

+0

genau so. – Konstantinos

1

Sie müssen nur das ArrayList in ViewState oder Session speichern, damit es seine Werte zwischen Postbacks behält.