سؤال

وأستخدمه الإطار 2.0، وأنا لا أفهم كيف يعمل في DataGrid ومجموعات البيانات بعد القيام إعادة النشر. في MSDN يقول أن ليس هناك حاجة للقيام DataBind عناصر مرة أخرى إذا كان الطلب هو إعادة النشر. ولكن سؤالي هو: كيف يظهر مرة أخرى في DataGrid السجلات إذا لم يكن هناك DataBind عناصر؟ I supose أن asp.net يحفظ في ذاكرة التخزين المؤقت نتائج الاستعلام، لكنني لست متأكدا. من فضلك قل لي ما هي الآلية التي تستخدم .NET لتحقيق ذلك.

ولدي نتيجة استعلام كبيرة (مئات)، المقسم إلى صفحات كل 50 السجلات، وأريد أن تجنب القيام نفس الاستعلام في كل مرة للمستخدم تحديد السجلات ال 50 المقبلة.

وشكرا مقدما.

هل كانت مفيدة؟

المحلول

وASP.NET يحفظ القيم السابقة الخاصة بك في حالة العرض، حتى لا تضيع أنها بين إعادات النشر.

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

إذا العملاء الحصول على نفس البيانات في كل مرة، والتغييرات البيانات الحالية ليست مهمة في حين تظهر البيانات، وربما يمكنك تخزين مع <لأ href = "http://msdn.microsoft.com/en-us/ مكتبة / xsbfdd8c (VS.80) .ASPX "يختلط =" نوفولو noreferrer "> asp.net في آلية التخزين المؤقت .

نصائح أخرى

والجواب على ذلك هو حالة العرض. يتم تخزين كله عرض الشبكة في حالة العرض وهذا هو الذي لا يزال قائما عبر إعادات النشر.

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

حالة العرض هي الكلمة السحرية: P

وASP.NET لدت WebForms هو كل شيء عن حالة العرض .

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

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