Hinzufügen von Elementen zu einer Arraylist, wenn eine Schaltfläche in gridview angeklickt wird

StackOverflow https://stackoverflow.com/questions/865205

Frage

Ich brauche die itemid aus der Liste der Zeilen hinzufügen, wenn ich Button in der gridview auf ‚in dem Warenkorb‘, ich war in der Lage, dies zu einem Arraylist passieren itemid.

Aber das Problem ist, dass jedes Mal wenn ich auf die Schaltfläche klicken die vorherige itemid mit dem neuen Elemente überschrieben wird stattdessen mag ich die Arraylist erweitern.

public partial class Drama_k : System.Web.UI.Page
{
    string Cn=@"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();
        }
    }
}
War es hilfreich?

Lösung

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

Edit:. Hier ist ein kleines Beispiel, wie Sie die Arraylist in der Sitzung speichern soll und rufen Sie sie auf jedem Postback

    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 mich wissen.

Andere Tipps

Sie müssen nur diese ArrayList im ViewState oder Session speichern, damit es seine Werte zwischen Postbacks beibehalten werden.

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