Pregunta

Tengo que añadir la itemid de la lista de filas al hacer clic en 'Añadir al carro' botón en el gridview, yo era capaz de pasar esta ITEMID a un ArrayList.

Pero el problema es que cada vez que haga clic en el botón de la itemid anterior se sobrescribe con el nuevo elemento en lugar Quiero que el ArrayList se expanda.

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();
        }
    }
}
¿Fue útil?

Solución

No hay que olvidar que el ArrayList no se almacena en algún lugar, hay que almacenarlo en la sesión del usuario y en cada devolución de datos causada por el botón de recuperarlo de la sesión y añadir el artículo hecho clic el usuario.

Editar:. He aquí una pequeña muestra de cómo se debe almacenar el ArrayList en la sesión y recuperarlo en cada devolución de datos

    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);
    }
}

Si todavía tiene alguna pregunta, hágamelo saber.

Otros consejos

Sólo tiene que almacenar esa ArrayList en el ViewState o Session por lo que conservará sus valores entre las devoluciones de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top