PDA

View Full Version : سوال در مورد postback شدن صفحه هنگام paging کردن datagrid



niloofarabi
دوشنبه 23 آذر 1388, 15:47 عصر
با سلام خدمت دوستان برنامه نویس
من در یک datgrid تعدادی رکورد نمایش میدم که البته به این grid یک ستون checkbox هم اضافه کردم و میخوام روی رکوردهایی که ستون checkbox اونها تیک دارن یک سری عملیات انجام بدم.برای افزایش سرعت لود شدن Page از خاصیت paging در datagrid استفاده میکنم .ولی مشکل من اینجاست که با هر تغییر page عمل postback اتفاق میفته و وقتی به Page قبلی بر میگردم تیک هایی که روی اون Page زدم همه از بین رفته .
لطفا راهنمایی کنید که چه کاری میتونم انجام بدم که این مشکل بر طرف بشه .

hobab-theme
دوشنبه 23 آذر 1388, 18:17 عصر
اگر واسط صفحه بندی کنترلی مثل DataGrid یا ... رو فعال کنید ، نه تنها به لود سریع صفحه کمک نکردید بلکه در برخی موارد اثر منفی داره .
مثلاً فرض کنید که شما تو جدولتون ( جدول بانک اطلاعت ) 3 میلیارد رکورد دارید . اگر فقط خاصیت AllowPaging رو برابر True قرار بدید تمام این 3 میلیارد رکورد در حافظه بار میشه و دیگه خودتون بقیه رو حدس بزنید ...
مشکل شما هم با اجاکس و عمل صفحه بندی از دیتابیس حل میشه .
من الان خونه نیستم . بعداً یه سری کد نمونه براتون میذارم تا استفاده کنید .
در ضمن پیشنهاد من اینه که از DataGrid استفاده نکنید . از GridView استفاده کنید . چون پیشرفته تره
موفق باشید

shocraneh
دوشنبه 23 آذر 1388, 19:46 عصر
دوستان گفتند وقتی تعداد رکورد ها زیاده GridView هم مشکل داره و باید از ریپیتر استفاده کرد . حالا من با قضیه paging ریپیتر موندم ابته با ویبی(سی شارپ رو دارم ) جوری که دوستان گفتند میشه تو رکوردهاش لینک گذاشت (چه جوری نمی دونم ؟) می گم شاید چک باکس هم بشه ؟؟؟/
حالا اگه قصدت GridView است با عنوان paging سرچ کن به جواب می رسی البته من از برنامه گریدویو آقای راد استفاده کردم .
موفق باشید

niloofarabi
سه شنبه 24 آذر 1388, 09:19 صبح
اگر واسط صفحه بندی کنترلی مثل DataGrid یا ... رو فعال کنید ، نه تنها به لود سریع صفحه کمک نکردید بلکه در برخی موارد اثر منفی داره .
مثلاً فرض کنید که شما تو جدولتون ( جدول بانک اطلاعت ) 3 میلیارد رکورد دارید . اگر فقط خاصیت AllowPaging رو برابر True قرار بدید تمام این 3 میلیارد رکورد در حافظه بار میشه و دیگه خودتون بقیه رو حدس بزنید ...
مشکل شما هم با اجاکس و عمل صفحه بندی از دیتابیس حل میشه .
من الان خونه نیستم . بعداً یه سری کد نمونه براتون میذارم تا استفاده کنید .
در ضمن پیشنهاد من اینه که از DataGrid استفاده نکنید . از GridView استفاده کنید . چون پیشرفته تره
موفق باشید


پیشاپیش از کمکتون تشکر میکنم
منظور من هم از datagrid همون gridview بود.البته من از gridview telerik استفاده میکنم.
مشکل من با صفحه بندی کلا اینه که میخوام روی همه رکوردهای انتخاب شده توسط کاربر یک جا یک سری عملیات انجام بدم من اگر بخوام از صفحه بندی دیتابیس استفاده کنم هم باز هم به همون مشکل از دست رفتن رکوردهای انتخابی بر میخورم .شما برای حل این مشکل چه پیشنهادی دارید ؟

hobab-theme
سه شنبه 24 آذر 1388, 23:50 عصر
خوب در اینصورت شما میتونید از Ajax استفاده کنید
ساده ترین راه اینه که کل گریدویو تون رو توی یه UpdatePanel قرار بدید
یه مقاله بسیار عالی هم توی سایت در همین رابطه ( Ajax ) هست که میتونید استفاده کنید

دوستان گفتند وقتی تعداد رکورد ها زیاده GridView هم مشکل داره و باید از ریپیتر استفاده کرد
شخصاً همچین چیزی نشنیدم ولی شاید این رو از روی تجربه شخصی فرمودن .

جوری که دوستان گفتند میشه تو رکوردهاش لینک گذاشت (چه جوری نمی دونم ؟) می گم شاید چک باکس هم بشه ؟؟؟/

دوست من کنترل Repeater گروهی از آیتمهای داده رو با استفاده از یک قالب نمایش میده . این کنترل برخلاف کنترلهای GridView و DataList بطور خودکار یک جدول Html نمایش نمیده .
این یعنی اینکه شما می تونید یک قالب ItemTemplate به این کنترل اضاف کنید و با ساخت جداول اچ تی ام ال هر جور که خواستید از اون استفاده کنید

موفق باشید

iman_ad
چهارشنبه 25 آذر 1388, 00:44 صبح
تو گرید ویو هم این امکان هست اگه نمی خوای اپدیت کنی از ریپیتر استفاده کن اگه نه از گرید، اگه تعداد رکوردات زیاده باید حتما حتما حتما فقط رکوردای یک پیج هر بار بایند کنی