إضافة عناصر إلى ArrayList عندما يتم النقر على زر في gridview

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

سؤال

وأنا بحاجة إلى إضافة itemid من القائمة الصفوف عندما أقوم بالنقر فوق "إضافة إلى السلة 'زر في gridview، وكنت قادرا على تمرير هذا itemid إلى arraylist.

ولكن المشكلة هي أن في كل مرة كنت اضغط على زر الكتابة فوق 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();
        }
    }
}
هل كانت مفيدة؟

المحلول

ولا ننسى أن 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);
    }
}

وإذا كنت لا تزال الأسئلة اسمحوا لي أن أعرف.

نصائح أخرى

وأنت فقط بحاجة إلى تخزين تلك ArrayList في ViewState أو Session لذلك سوف تحتفظ قيمها بين إعادات النشر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top