الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال بخصوص ال Session

بدأه الاخير زمانه في 24 يوليو 2010 · 4 رد · 475 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،،

الكود التالي ماخوذ من احد الكتب ،

برنامج بسيط Cart Shopping

public partial class _Default : System.Web.UI.Page
{
    ArrayList cart;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["cart"] == null)
        {
            cart = new ArrayList();
            Session["cart"] = cart;
        }
        else
            cart = (ArrayList)Session["cart"];
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        ShoppingCartItem item;
        string description = ddlItem.Text;
        int quantity = Int16.Parse(txtQuantity.Text);
        item = new ShoppingCartItem(description,
        quantity);
        cart.Add(item);
        Response.Redirect("Cart.aspx");
    }
}

طبعا هناك تكملة للصفحة الثانية ،،

المهم انا الذي لا افهمة في عملية تكوين السيشن ،،

يعني في تحميل الصفحة وعملية تكوين السيشن ، اذا كان السيشن غير موجود فيتم تكوينه واذا موجود يتم قراءة قيمته ، واضح.

الان في زر Add ،، سيتم اضافة object الى ال cart في كل مرة نضغط على الزر،،

هذه القيمة كيف ستضاف الى السيشن ، يعني عند عمل اضافة لمرتين او ثلاثة مثلا ، ثم عمل تحميل للصفحة ، في حدث Load ستتنفذ جملة ال else والتي ستقرء قيمة ال cart من السيشن ،

كيف ستكون قيمة السشن متغيرة حسب عدد مرات الضغط على الزر.

لا اعرف اذا كان السؤال واضح ،، قرأت في اكثر من كتاب عن السيشن ولسه لم افتهم الامر 100 %

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

السلام عليكم ورحمة الله وبركاتة

اخي لو ركزت بشكل بسيط في الكود

قمنا بتعريف cart على اساس انها ArrayList وبعدين جعلنا مابقيمته داخل الsession وقلت انها واضحة

وفي عملية الاضافة اعتقد انه يوجد calss يسمة ShoppingCartItem انشئنا منه متغير اسمه item ومررنا به الوصف والكمية وفي النهاية نرجع الى اول متغير cart ووضعنها فيه item

اتمنى ان شرحي مفهوم

واخي ممكن تقول لي اسم الكتاب لو سمحت

My Latest

Hello Entity Framework Code First

--------------------

#3

شكرا اخي على الرد ،

انا الذي لا افهمه عندما نغيير قيمة المتغير cart كيف ستتغير قيمة السيشن.

ممكن واحد يخبرني كيف يعمل السيشن بالضبط، اعرف انه يستخدم لخزن المعلومات الخاصة بمستخدم معين وقت دخوله لكن كيف يعمل داخليا.

يعني في الكود الذي في الاعلى عندما قلنا ان السيشن يساوي ال cart ، هل معنى هذا انه تم ربطهما معا واي تغيير في ال cart سينعكس على السيشن.

حتى يكون كلامي واضح ، في الكود اذي في الاعلى ،، انا حسب فهمي الكود ينقصه الاتي (طبعا هو لا ينقصه شيئ فعليا هو شغال)

protected void Page_PreRender(object sender, EventArgs e)
{
    Session["cart"] = cart;
}

الكتاب هو

ASP.NET 2.0 All-in-One Desk Reference For Dummies

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#4
اقتباس

يعني في الكود الذي في الاعلى عندما قلنا ان السيشن يساوي ال cart ، هل معنى هذا انه تم ربطهما معا واي تغيير في ال cart سينعكس على السيشن

يبدو لي و الله أعلم من الكود أننا إذا أضفنا مثلاً عنصرين لcart ثم قمنا بإعادة تحميل الصفحة فإن محتويات cart ستختفي و بالتالي سيكون السيشن خالياً، لحل المشكلة عدل السطر:

ArrayList cart;

إلى:

Static ArrayList cart;

تحياتي لك ...

تم تعديل هذه المشاركة بواسطة بهاء صلاح الدين فراج في 25 يوليو 2010 في 05:49

#5

صح كلامك اخوي منطقيا ومن خلال الكود الي اشوفه ينقصه اسناد الـ cart الى السيشن في حدث بري ريندر

ممكن الكود ناقص ياليت لو تاكدت

و وممكن ايضا مولف الكتاب يقصد شي انا مو فاهمة .

بس من خلال الكود هذا ماني قادر افهم منه شي

ننتظر بقية الاخوان اهل الخبرة اكيد راح يفيدونا في هذا الشي

مواضيع مشابهة