【问题标题】:adding items to an arraylist when a button in gridview is clicked单击gridview中的按钮时将项目添加到arraylist
【发布时间】:2009-05-14 19:27:30
【问题描述】:

当我在 gridview 中单击“添加到购物车”按钮时,我需要从行列表中添加 itemid,我能够将此 itemid 传递给 arraylist。

但问题是每次我单击按钮时,前一个 itemid 都会被新项目覆盖,而不是我希望扩展数组列表。

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

【问题讨论】:

    标签: c# session gridview button arraylist


    【解决方案1】:

    不要忘记arraylist没有存储在某个地方,您必须将它存储在用户的会话中,并且在按钮引起的每次回发时从会话中检索它并添加用户单击的项目。

    编辑:这里有一个小示例,说明您应该如何在会话中存储 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);
        }
    }
    

    如果您还有问题,请告诉我。

    【讨论】:

    • 很抱歉我的 c# 知识不是很好。我到底应该怎么做。谢谢
    • 是这样的吗 Session["item"] = arrValues;
    • 我有点困惑,第一次我需要在用户单击 gridview 行中的“添加到购物车”按钮时将项目添加到数组列表中,然后将数组列表添加到会话中?当我检索它时,即使我点击 2 个项目,它也会给出 1 个值?谢谢
    • 我厌倦了代码,它在 gridview1 中没有显示任何内容?
    【解决方案2】:

    您只需要将 ArrayList 存储在 ViewStateSession 中,这样它就会在回发之间保留其值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多