добавление элементов в arraylist при нажатии кнопки в gridview - PullRequest
0 голосов
/ 14 мая 2009

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

Но проблема в том, что каждый раз, когда я нажимаю кнопку, предыдущий 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();
        }
    }
}

Ответы [ 2 ]

1 голос
/ 14 мая 2009

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

1 голос
/ 14 мая 2009

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

Редактировать: Вот небольшой пример того, как вы должны хранить 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);
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...