• 0
DotNetExpert

تمرير البرامترات من صفحة لأخري

سؤال

كثيرا ما يطرح سؤال كيف يتم ترمير البرامترات من صفحة لأخرى.

اليوم وبالصدفة وجدت مقالة عن هذا الموضوع في الموقع الاكثر من رائع www.4GuysFromRolla.com

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

http://aspnet.4guysfromrolla.com/articles/020205-1.aspx

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

8 إجابة على هذا السؤال .

  • 0

أيضا هناك طريقة ثانية وسهلة جدا شبيهة بطريقة ال Classic ASP و هي بحذف الخاصية runat من الوسم Form و تحديد الخصائص Method و Action كالتالي :

<form id="myForm" Action="secondPage.aspx" Method="Get">

..........
</form>

من خلال هذه الطريقة سوف تعتمد فقط على ال HTMLControls و تستطيع إستقبال القيم إما عن طريق Request.QueryString كما في المثال السابق أو عن طريق Request.Form لو كانت الخاصية Method من نوع Post.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

إضافة علي كلام الأستاذ DotNetExpert والأستاذ محمد خليل أبو صلاح

أيضا يوجد طريقة أخري (وهي مفضلة لي بصفه شخصية)

وهي إستخدام Server.Transfer

ولمزيد من المعلومات تابع المقال التالي :

Passing Values between ASP.NET Web Forms

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك على هذه المشاركة.

اعتقد أن المشكلة في server.transfer هي انها لا تحول المستخدم الى الصفحة الجديدة بل تقوم فقط بتنفيذ الصفحة الجديدة وارسال الناتج الى المستخدم ان في احقل العنوان لدى المستخدم سوف يبقى اسم الصفحة القديمة. على كل انا لست متاكد من هذا ولكنني الان لست على كمبيوتري لذلك لا استطيه التاكد.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صحيح كلام DotNetExpert .. هي قريبة من فكرة ال Server.Execute و تقوم بتمرير الباريمترات لصفحة أخرى يتم تنفيذها ضمن نفس الصفحة ..

بتذكر أني قرات أن لها عيوب مما يجعلها غائبة عن الاستخدام المتداول لدى المبرمجين .. سوف ابحث عن السبب في كتاب عندي في الويكند لانو في مدينة اخرى:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اوكي لاقيت الكتاب عندي بالبيت ...

المكتوب هو التالي :

Server.Transfer تقوم بنقل جميع محتويات الصفحة سواء مخزنة في Session أو Application Object او Request collections التي وجدت في الصفحة الأولى للصفحة الثانية و الفرق بينها و بين ال Server.Execute أن الأولى لا تعيدنا للصفحة الأولى التي كنا فيها أما الثانية فتقوم بتضمين الصفحة و تنفيذ أكوادها ضمن الصفحة التي استدعت الصفحة الثانية عن طريق Server.Execute.

أيضا هناك فرق بين ال Server.Transfer و ال Response.Redirect و هو أن الثانية Redirect تقوم بتحويل المستخدم للصفحة الجديدة دون تنفيذ كامل الصفحة أما ال Server.Transfer فهي تقوم بنقل جميع محتويات الصفحة بعد تنفيذ كامل أكواد الصفحة ..

مثال توضيحي يوضح الفريق بين Server.Execute و Server.Transfer :

// Server.Execute :
// Page1.aspx
Response.Write("Line 1       Page1.aspx");
Server.Execute("page2.aspx");
Response.Write("Line 2       Page1.aspx");


// Page2.aspx
Response.Write("Line 1       Page2.aspx");
Response.Write("Line 2       Page2.aspx");

// المخرجات
Line 1        Page1.aspx
Line1         Page2.aspx
Line2         Page2.aspx
Line2         Page1.aspx

/////////////////////////////////////
//Server.Transfer :

// Page1.aspx
Response.Write("Line 1       Page1.aspx");
Server.Transfer("page2.aspx");
Response.Write("Line 2       Page1.aspx");


// Page2.aspx
Response.Write("Line 1       Page2.aspx");
Response.Write("Line 2       Page2.aspx");

// المخرجات
Line 1        Page1.aspx
Line1         Page2.aspx
Line2         Page2.aspx

انتبهو في المثال ألأول أنه تم تنفيذ السطر الأول و عرضه ثم عرض محتويات الصفحة الثانية و بعدها عودة لإكمال الأكواد الموجودة تحت ال Server.Execute ..

حظا موفقا للجميع

تم تعديل بواسطه محمد خليل أبو صلاح
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

مشكور أخي DotNetExpert وأبو خليل علي التعقيب

بتذكر أني قرات أن لها عيوب مما يجعلها غائبة عن الاستخدام المتداول لدى المبرمجين

ولكن ما هو هذا العيب الذي تقصده فلم تواجهني مشكلة ما حتي الأن عند إستخدامي لهذه الطريقة

كما أحب أن أشير أنه يمكننا نقل البيانات بواسطة Server.Transfer

من خلال إستخدام Context كما يلي

page1.aspx

    this.Context.Items.Add("var1", "arabteam2000");

   this.Server.Transfer("page2.aspx");

page2.aspx

    string var = this.Context.Items["arabteam2000"].ToString();

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الحسين انا ما فهمت القصد من صفحة page2.aspx التي كتبتها .......

بخصوص قصة البعد عن استخدامها فهي في كتاب اخر سوف أرد بعد الويكندد إن شاء الله حتى يكون الكلام معتمدا على مرجع :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

أولا أسف علي التأخير في الرد وذلك لإنشغالي التام هذه الأيام

انا ما فهمت القصد من صفحة page2.aspx التي كتبتها

فهي إحدي الطرق المتبعة لتخزين البيانات في المصفوفة Context.Items

ثم نقوم بإرسالها إلي صفحة أخري من خلال Server.Transfer

ولكن يبدو أني أخطئت في كود الصفحة page2.aspx

التصحيح

string var1 = this.Context.Items["var1"].ToString();

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .