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

ارجو المساعدة العاجلة CascadingDropDown AJAX

مغلق
بدأه bnitt في 3 يونيو 2007 · 7 رد · 1,100 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوانى لديا اثنين كمبو

2DropDownList

2 CascadingDropDown

الكمبو الاول يتم تعبئتة من قاعدة البيانات فى Form_Load

كيف اربط الكمبو الاول مع الكمبو الثانى بحيث يتم تحديث الكمبو الثانى فقط بالبيانات

الا يحدث كل الكمبو الموجودة فى الـــ UpdatePanel

حاليا صار يحدث لى كل الكمبو فى UpdatePanel

ثانيا هناك خاصية : Category

بماذا اعطيها من قيمة وانا احدث الكمبو الاول فى Form_Load

#2

السلام عليكم

عندي نفس المشكلة التي شرحها الأخ bnitt

هل من حل؟؟؟

أخ bnitt هل احتلت المشكلة وكيف؟!!

شكراٌ

#3

اخى اولا اشكرك لاستخدامك تقنية الويب القادمة بقوة Ajax لكنى اقدم لك بعض النصائح من نتاج تجربتي مع Microsoft Ajax

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

بالنسبة للمشكلة التى ذكرتها لا انصحك بمتابعة استخدام الكنترولز الجاهزة خاصة بتقنية اجاكس اذ ان المتاعب ستواجهك بالتاكيد لكني اريدك ان تتعرف على معنى XMLHttpRequest

التعرف على التقنية :-

أجاكس (AJAX)

أجاكس هي تكنولوجيا مستخدمه لجعل المواقع أكثر تفاعلا واستجابة وأسرع في التحميل، وكلمة (AJAX) أتت من اختصار لاسم التقنية الكامل وهو Asynchronous JavaScript And XML و تعني “حرفياً” ، “الجافا سكربت الغير تزامنية مع الـ(XML)”. الفكرة الأساسية للأجاكس هي عندما يغير المستخدم شي في صفحة على الانترنت فإن الجزء الذي غيره المستخدم يُعاد تحميل فقط بدلاً من إعادة تحميل كل الصفحة مرة أخرى. تتم هذه العملية من خلال تبادل بيانات صغيرة الحجم بين المتصفح ومزود صفحة الانترنت. وبذلك يكون التحميل أسرع. أجاكس تشمل تحتها تكنولوجيات عديدة منها :

1. HTML أوXHTML ، وCSS (اختصار لـ Cascading Style Sheet ) ، وهي لغة نصية لتسهيل تصميم صفحات الويب.

2. جافا سكربت JavaScript، لغة نصية لعرض وتقديم البيانات ديناميكياً.

3. XMLHttpRequest Object ، وهي عبارة عن (API (Application Programming Interface أو (عنصر برمجة للتطبيقات البينية)، وتستخدم لتبادل البيانات بطريقة غير تزامنية بين الزبون والمزود.

4. XML، لغة تُستخدم لإعادة تمثيل بنية و شكل البيانات القادمة من المزود (server).

2. فقد لفتت الخدمات الجديدة التي تقدمها بعض مواقع الإنترنت الشهيرة، ( مثل أبل وأمازون وفولفو وكثير غيرها) الأنظار إلى تقنية بارزة تساهم في تسريع عرض وتقديم صفحات الويب بصورة شبه فورية. وفي زمن تسعى فيه الشركات لتعزيز رضى الزبائن تعني الكثير مجرد زيادة قليلة في سرعة تحميل الصفحات ولو كان ذلك بعدة ثوان. لكن أجاكس توفر دقائق غالية وتقدم خلال ثوان معدودة ما يفترض أن تنزيله من بيانات سيستغرق دقائق طويلة.

وبمجرد طرح غوغل لخدمة الخرائط وموقع ياهو لخدمة أخرى، بدأ البحث عن أسرار السرعة المذهلة في هذه الخدمات. مايكروسوفت أعلنت من جهتها عن منتج ستطلقها مع طقم فيجيوال ستوديو دوت نت واسمه أطلس، وقامت ياهو باعتماد التقنية في موقع الصور لديها وهو موقع flickr، وتخلت ياهو عن تقنية فلاش من ماكروميديا لصالح أجاكس. وأصبح يشار إلى هذه التقنية باسم AJAX وهو اختصار لتقنيات إنترنت متعددة تجمع جافا سكريبت غير المتزامنة Asynchronous JavaScript مع لغة XML، يسرع هذا الأسلوب بالاعتماد على تطبيق من تقنية أجاكس، تعامل متصفح الإنترنت مع المواقع دون الحاجة لانتظار لتحديثها refresh من خادم ويب.

ولا يتم تغيير سوى الجزء الذي يحتاج إلى تحديث ويتم ذلك محليا أي في متصفح إنترنت لدى المستخدم دون الاتصال بالموقع. يمكن للمستخدم مواصلة التفاعل مع الصفحة لتقوم جافا سكريبت في المتصفح بتقليص طلباتها من الخادم ليتم تمرير تعاملات المستفيد والخادم في الخلفية، بينما تستدعي التطبيقات العادية بدون أجاكس تحديثا كاملا لكل بيانات الصفحة عند الحاجة لأي تعديل مهما كان حجمه مع تعديل في عنوان الصفحة URL في حال ملء الاستمارات أو طلبات الشراء أو غير ذلك من خدمات. ورغم أن مكونات التقنية ليست جديدة تماما إلا أن الاسم والتطبيقات الأحدث هي العنصر الحديث فقط، حيث أطلق اسم أجاكس عنوانا لدراسة كتبها أحد خبراء تطبيقات الويب واسمه جيسي غاريت ليشير إلى تطبيقات غوغل مثل كل من Google Groups و Gmail، على أنها تحولا هام في تطبيقات الويب. كما أن خدمة صور الأقمار الاصطناعية والخرائط Google Maps لا تتأثر عند التقريب أو طلب صورة أوسع للكرة الأرضية أو المشهد الحالي، بينما كانت التطبيقات المشابهة حتى وقت قريب تجعل من صفحة الويب تتبدل كلها وينتظر المتصفح طويلا مع ظهور رمز ساعة رملية ليقوم خادم الويب الخاص بالخرائط map server بتوليد الخريطة المطلوبة لتقديمها ونقلها إلى المتصفح. تعتمد أجاكس على التقنيات التالية: لغة XHTML وصفائح الأنماط المتعاقبة Cascading Style Sheets (CSS)

- نموذج عنصر الوثيقة Document Object Model للعرض الديناميكي

- لغة XML ولغة لتبادل البيانات Extensible Stylesheet Language Transformations

كود مايكروسوفت XMLHttpRequest للتعامل غير المتزامن بين الخادم والمستفيد (asynchronous client/server interaction)

- لغة جافا سكريبت لتشغيل الأوامر في كمبيوتر المستفيد. تفلح أجاكس في مهام تسريع خدمات الإنترنت من خلال جعل محرك أجاكس في متصفح المستفيد أو المستخدم الذي يطلب معلومة أو بيانات محددة بجافاسكريبت ويخرج طلبه ببروتوكول HTTP يتلقى الاستجابة من الموقع بلغة XML تظهر البيانات الجديدة في المتصفح بنسق .HTML+CSS

ليست أجاكس جديدة كليا، لكن العنصر الذي ساهم في خروج التقنية إلى الضوء هو توفر وانتشار استخدام الموجة الواسعة، فهناك التحكم المحلي لدى المستخدم بلغة جافا سكريبت والذي يستدعي تنزيل عشرات الآلاف من كود جافا سكريبت، الأمر الذي كان يستدعي عملية تنزيل تستغرق وقتا طويلا. كما أن المعالجات الأحدث أصبحت تؤمن قدرات ملائمة لتحليل وتشغيل جافا سكريبت. والمؤكد أننا سنسمع الكثير قريبا عن أجاكس هذه

3.

ومن الأمثلة الرائعة على استخدام الأجاكس هي خرائط غوغل. يُلاحظ من استخدام خرائط غوغل أن الخريطة مقسمة إلى مربعات تُحمّل بالتدريج، و عندما يغير المستخدم الاتجاه فإن الأجزاء الجديدة هي التي يعاد تحميلها فقط. هذه هي الأجاكس بالضبط. كما من الأمثلة المشهورة لاستخدام الأجاكس هي مربعات التحميل (Loading) ذات الرسومات المتحركة الجميلة و البسيطة، كهذه:

أو

فمعربات التحميل هي التي يعاد تحميل بياناتها فقط دون كامل الموقع. يمكنك مشاهدة وصنع أمثلة رائعة من مربعات التحميل في موقع AjaxLoad.

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

انصحك الا تستخدم الكنترولز مثل UpdatePanel وبقية الكنترولز لانها تسبب بعض البطء فى الموقع

أغلب التقنيات لدينا لها إيجابيات وسلبيات، وفي العادة تغلب الإجابيات على السلبيات، والعكس صحيح في بعض الأحيان، ففي هذا المقال سوف أوضح إجابيات وسلبيات تقنية الـ AJAX.

ولأن أكثرنا يعرف إيجابيات هذه التقنية، فلم أركز عليها بقدر تركيزي على السلبيات، وسأذكر هنا 4 إيجابيات و 4 سلبيات، وأرجوا إن كانت هناك حلول لها حسب رأيكم أن نناقشها حتى نصل لنتيجة جيدة.

الإيجابيات:

لا تحتاج إلى إعدادات خاصة في السيرفر، يكفي أن يكون المتصفح يدعم تقنية HTTP Requests.

تخفيف الضغط على السيرفر.

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

خفة التصفح، بجعل المتصفح لا يعيد تحميل الصفحات من جديد.

السلبيات:

بالضرورة يجب أن يكون المتصفح يدعم java script أو VbSript أو JScript ومع هذا يجب أن يدعم الكائن HTTP Requests.

لن تتعرف محركات البحث على الملفات المستوردة(إن صحت التسمية)، فمثلا عندك صفحة أخبار، بها عناوين آخر الأخبار، وعند النقر على عنوان يقوم الكود بجلب الموضوع الخاص به عن طريق أجاكس، فإن محركات البحث لن تتعرف على ذاك الموضوع أو تلك المواضيع، بل فقط على تلك العناوين الموجودة في الصفحة، وكل ما يظهر في السورس، ومعلوم أن محركات البحث تتبع الروابط وتستكشف صفحاتها، لكن مع أجاكس لا توجد روابط، بل استدعاء الكود والكود يجلب الموضوع أو الصفحة أو الكود، إذا على محرك البحث أن يدخل وسط السورس ويلتوي مع كود أجاكس ليستكشف الرابط المراد جلبه هل هو كود أم صورة أم صفحة... ، وهذا مستبعد، لكن ليس مستحيل خصوصا مع محرك البحث google.

إذا كنت تضع عداد زوار في صفحتك، وتهتم بالزيارات، فتوقع إن يدنو مؤشر الزيارات في الصفحة التي ركبت فيها أجاكس، الصفحة العادية كل نقرة فيها تضاف زيارة للعداد، لأن الصفحة يعاد تحميلها من جديد، مع أجاكس فإن الصفحة تنجز معاملات مع السيرفر دون إعادة تحميل الصفحة(reload)، بالتالي فإن العداد سيحسب زيارة واحدة ولو انجزت 100 معاملة مع السيرفر، عكس الصفحة العادية التي تحسب زيارة لكل معاملة، أي 100 معاملة = 100 زيارة، قد يحل أحدهم هذه الإشكالية بأن يجعل العداد يحسب مع كل معاملة يقوم بها أجاكس، لكن سيجد نفسه قاب قوسين أو أدنى من التلاعب(الغش في الإحصائيات لأنه يستعل نفس الوسيلة المتلاعبين الذين يستغلون هذه التقنية لرفع العداد).

قد تشكل تقنية أجاكس ثغرة جديدة على انترنت اكسبلورر، بعد الثغرة الأولى الخاصة بـ (JavaVM) لزرع الملفات داخل الجهاز، هذه الثغرة المحببة لدى أصحاب Spyware والتي إذا وجدت أيقونة مضافة في سطح المكتب او تولبار جديد في متصفحك ولا تدري من أين أتت فأعلم أن هذه الثغرة هي التي جاءت منها.

الثغرة التي ستشكلها تقنية الـ AJAX هي أن أي صفحة تزورها بها كود AJAX يمكن ان ترفع من عندك أي ملف إذا عرف امتداده سواء رضيت أم لم ترضى، ولكم أن تفهموا ذلك من خلال بريد gmail حين تريد إرفاق ملف، فهو لا يظهر نافدة استعراض الملفات إلا ليعرف امتداد الملف الذي تود إرفاقه، وعن طريق تقنية الـ AJAX يقوم بسحبه، لنفترض أن بريد gmail لئيم فإنه لن يحتاج إلى إظهار نافذة استعراض الملفات، بل سيعطي أمر لأجاكس بأن يقوم بسحب ملف الرجستر مثلا دون علمك وملف الرجستر معلوم امتداده، كذلك إذا عرف امتداد ملف القائمة البريدية الخاصة (بـ Outlook) أو (Thunderbird) فله أن يسحب تلك القائمة البريدية (ويسلم لك عليهم بدلا منك).

أقدم لك مجموعة كتب متنوعة فى الAjax و الجافا سكريبت JavaScript

اولا :- إستخدام HOW TO USE XML HTTP REQUEST

http://www.jibbering.com/2002/4/httprequest.html

كتب اجاكس:-

--=الكتاب الأول=--

الإسم : Ajax Hack

الحجم : 820 kb

اللغة : الإنجليزية

التحميل : إضغط هنا

--=الكتاب الثانى=--

الإسم : Pragmatic AJAX

الحجم : 2.5 Mb

اللغة : الإنجليزية

التحميل : إضغط هنا

--=الكتابين الثالث والرابع =--

الإسم : Java Learning & مقدمة نحو جافا إسكريبت

الحجم : 2 Mb

اللغة : العربية

التحميل : إضغط هنا

اتمنى لك التوفيق والنجاح

تم تعديل هذه المشاركة بواسطة bnitt في 28 يوليو 2007 في 20:38

#4

شرح جميل اخي bnitt

ويبدو انك عدلت عن استخدام ادوات اجاكس الجاهزة

فيما يخص السؤال موضوع البوست , يفترض لإستخدام CascadingDropDown ان يتم تجهيز Webservice ويمكن في حالة عدم استخدام CascadingDropDown ان نسنخدم UpdatePanel ونضع فيها DropdownLists ونحصل على نتيجة مماثلة طلما ان DropdownLists تعتمد على بعضها,ويتم تلقائيا تحديث احداها بناءا على تغير الأخرى

The World Must Be Crazy

#5

شكرا اخى نعم يستخدم مع هالكنترولز WebService فقط على ما اعتقد وتحديد قيمة لـــ Category من داخل ملف xml يتم تعبئة البيانات فية

وهذا رابط الدرس من موقع www.asp.net

http://www.asp.net/learn/ajax-videos/video-77.aspx

#6

السلام عليكم

الأخ bnitt

شكراٌ على الشرح الرائع ولكن وصلات الكتب لاتعمل

وبالنسبة للفيديو نزلتة من قبل ولكنة يتكلم على ملف XMLوليس قاعدة بيانات

الأخnewbie

شكرا على ردك وان شاء الله سأجرب طريقتك

أختكم

dotnet_dev

#7

أختى الكريمة هذا رابط لعدد من الكتب

وممكن اقلك شيئ انة قلة المصادر التعليمية بهذة التقنية مشكلة للمبرمج العربي الذى لا يجيد الانجليزية

اعتقد منتدى وحيد يناقش هذة التقنية وهو

منتديات المحيط العربي للبرمجة-منتدى اللغات القياسية

http://ebooks.tipsclub.com/index.php?act=category&id=69

#8

شكرا أخي على الروابط

هذا الموضوع مغلق.

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