Мне нужно добавить itemid из списка строк, когда я нажимаю кнопку «добавить в корзину» в gridview, я смог передать этот itemid в массив.

Но проблема в том, что каждый раз, когда я нажимаю кнопку, предыдущий идентификатор элемента перезаписывается новым элементом, вместо этого я хочу, чтобы Arraylist расширялся.

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();
        }
    }
}
0
pier 14 Май 2009 в 23:27

2 ответа

Лучший ответ

Не забывайте, что arrayylist где-то не хранится, вы должны хранить его в сеансе пользователя и при каждой обратной передаче, вызванной кнопкой, извлекать его из сеанса и добавлять элемент, на который щелкнул пользователь.

Изменить: вот небольшой пример того, как вы должны хранить ArrayList в сеансе и извлекать его при каждой обратной передаче.

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

Если у вас остались вопросы, дайте мне знать.

1
Konstantinos 15 Май 2009 в 01:28
Мне жаль, что мои знания в C # не так хороши. как именно я должен это сделать. Благодарность
 – 
pier
14 Май 2009 в 23:37
Это похоже на этот Session ["item"] = arrValues;
 – 
pier
14 Май 2009 в 23:42
Я немного запутался, во-первых, мне нужно добавить элементы в arraylist, когда пользователь нажимает кнопку «добавить в корзину» в строке gridview, а затем добавляет Arraylist в сеанс? когда я получаю, он также дает 1 значение, даже если я нажимаю на 2 элемента? Благодарность
 – 
pier
15 Май 2009 в 00:00
Мне надоел код, он ничего не отображает в gridview1?
 – 
pier
15 Май 2009 в 00:30

Вам просто нужно сохранить этот ArrayList в ViewState или Session, чтобы он сохранял свои значения между обратными передачами.

1
Jonathan Freeland 14 Май 2009 в 23:32