الفرق بين DataGrid وGridView في ASP.NET؟
-
08-06-2019 - |
سؤال
لقد قمت بتطوير ASP.NET منذ فترة قصيرة، واستخدمت كلاً من عناصر تحكم GridView وDataGrid من قبل لأشياء مختلفة، ولكن لم أتمكن أبدًا من العثور على سبب وجيه لاستخدام أحدهما أو الآخر.أود أن أعرف:
ما الفرق بين عنصري التحكم ASP.NET هذين؟ما هي مزايا أو عيوب كليهما؟هل هناك أي أسرع؟أحدث؟أسهل للصيانة؟
لا يبدو أن ملخص التحسس لعناصر التحكم يصف أي فرق بين الاثنين.يمكن لكل منهما عرض البيانات وتحريرها وفرزها وإنشاء الأعمدة تلقائيًا في وقت التشغيل.
يحرر: لم يعد Visual Studio 2008 يسرد DataGrid كعنصر تحكم متوفر في مربع الأدوات.لا يزال متاحًا (للدعم القديم على ما أعتقد) إذا قمت بكتابته يدويًا.
المحلول
كان DataGrid عبارة عن عنصر تحكم ASP.NET 1.1، ولا يزال مدعومًا.وصل GridView إلى الإصدار 2.0، مما جعل بعض المهام أكثر بساطة، وأضاف ميزات مختلفة لربط البيانات:
يحتوي هذا الرابط على مقارنة بين ميزات DataGrid وGridView -
https://msdn.microsoft.com/en-us/library/05yye6k9(v=vs.100).aspx
نصائح أخرى
ال GridView
السيطرة هي خليفة ل DataGrid
يتحكم.مثل ال DataGrid
سيطر ال GridView
تم تصميم عنصر التحكم لعرض البيانات في جدول HTML.عند الارتباط بمصدر بيانات، فإن DataGrid
و GridView
يتحكم في كل عرض صف من أ DataSource
كصف في جدول الإخراج.
كلا ال DataGrid
و GridView
الضوابط مستمدة من WebControl
فصل.على الرغم من أنه يحتوي على نموذج كائن مشابه لنموذج DataGrid
التحكم، يحتوي عنصر التحكم GridView أيضًا على عدد من الميزات والمزايا الجديدة مقارنة بـ DataGrid
السيطرة، والتي تشمل:
- قدرات أكثر ثراءً في وقت التصميم.
- تحسين قدرات ربط مصدر البيانات.
- المعالجة التلقائية للفرز والترحيل والتحديثات والحذف.
- أنواع الأعمدة الإضافية وعمليات عمود وقت التصميم.
- واجهة مستخدم بيجر مخصصة (UI) مع خاصية PagerTemplate.
الاختلافات بين GridView
السيطرة و DataGrid
السيطرة تشمل:
- دعم الترحيل المخصص المختلف.
- نماذج مختلفة للحدث.
يتطلب فرز البيانات وترحيلها وتحريرها في مكانها ترميزًا إضافيًا عند استخدام DataGrid
يتحكم.ال GridView
يمكّنك التحكم من إضافة إمكانيات الفرز والترحيل والتحرير دون كتابة أي تعليمات برمجية.بدلاً من ذلك، يمكنك أتمتة هذه المهام، إلى جانب المهام الشائعة الأخرى مثل ربط البيانات بمصدر بيانات، عن طريق تعيين الخصائص في عنصر التحكم.
كان DataGrid موجودًا في الأصل في .NET 1.0.تم تقديم GridView (واستبدال DataGrid) في .NET 2.0.أنها توفر وظائف متطابقة تقريبا.
إذا كنت تعمل في Visual Studio 2008 / .NET 3.5، فمن المحتمل ألا تستخدم أيًا منهما.استخدم ListView - فهو يوفر لك ميزات GridView جنبًا إلى جنب مع مرونة تصميم المكرر.
يكمن الاختلاف الرئيسي في إدارة ViewState IIRC.يتطلب DataGrid تشغيل ViewState حتى تتمكن من التحرير والفرز.
أحد الاختلافات الأمنية الرئيسية هو أن DataGrid يستخدم BoundColumn الذي لا يقوم بتشفير البيانات المرتبطة.لا توجد خاصية لتشغيل HtmlEncoding أو إيقاف تشغيله أيضًا، لذا عليك القيام بذلك في التعليمات البرمجية بطريقة ما.
يستخدم GridView BoundField، الذي يقوم بـ HtmlEncode بشكل افتراضي على البيانات المرتبطة ولديه خاصية HtmlEncode إذا كنت بحاجة إلى إيقاف تشغيله.
شبكة بيانات
DataGrid
تم تقديمه معAsp.Net 1.0
.- للفرز نحن بحاجة للتعامل معها
SortCommand event
وشبكة Rebind المطلوبة وللترحيل ، نحتاج إلى التعامل معPageIndexChanged event
وإعادة ربط الشبكة المطلوبة. - تحتاج إلى كتابة التعليمات البرمجية لتنفيذ عمليات التحديث والحذف.
- لا يدعم التنسيق التلقائي أو ميزات النمط.
- الأداء سريع بالمقارنة مع
GridView
.
عرض شبكي
- تم تقديم GridView مع
Asp.Net 2.0
. - دعم مدمج لـ
Paging and Sorting
. - دعم مدمج لـ
Update and Delete operations
. - يدعم التنسيق التلقائي أو ميزات النمط.
- الأداء بطيء مقارنة ب
DataGrid
.
ال events
و properties
يحب Item
لقد تغير كما Row
.
على سبيل المثال،
ItemCommand - RowCommand
ItemDataBound - RowDataBound
e.Item.ItemType - e.Row.RowType
بعض الاختلافات الأساسية بين عرض الشبكة وعرض التفاصيل
يحتوي عنصر التحكم GridView أيضًا على عدد من الميزات والمزايا الجديدة مقارنة بعنصر التحكم DataGrid، والتي تشمل:
· قدرات أكثر ثراء في وقت التصميم.· تحسين قدرات ربط مصدر البيانات.· التعامل التلقائي مع الفرز والترحيل والتحديثات والحذف.· أنواع الأعمدة الإضافية وعمليات العمود في وقت التصميم.· واجهة مستخدم بيجر مخصصة (UI) مع خاصية PagerTemplate.
تتضمن الاختلافات بين عنصر التحكم GridView وعنصر التحكم DataGrid ما يلي:· دعم الترحيل المخصص المختلف.· نماذج مختلفة للفعاليات.
أحد الاختلافات هو إخراج HTML.سوف تقوم شبكة البيانات بإخراج TD للرأس وستعرض شبكة البيانات ستنتج TH.يمكن أن يسبب هذا تغييرات غير بديهية في الشاشة.