سلام
یک grid در فرم گذاشتم که وقتی اطلاعات داخل آن لود می شود 14 سطر رو نشون می ده برای دیدن بقیه سطرها گرید رو scroll می کنی به سمت پایین تا بقیه اطلاعات نشون داده بشه. در یکی از ستونهای گرید فوق از CheckBox استفاده کردم. چند تا مشکل دارم:
مشکل اول : در ابتدای کار تیک انتخاب همه رو می زنم وقتی روی گرید scrol می کنم تیک برخی سطرها برداشته می شود.
مشکل دوم : زمانیکه می خوام اطلاعات تمام سطرها را بخوانم فقط سطرهای جاری رو درنظر میگیره. یعنی همون 14 سطر رو اطلاعاتش را در دیتابیس ذخیره می کند و مجددا برای ذخیره مابقی اطلاعات باید دوباره اطلاعات باقی مانده را در گرید لود کنم و باز همان 14 سطر را ذخیره کنم. اطلاعات جدولی که می بایست در گرید لود کنم و بعد از اعمال تغییرات ذخیره کنم بیش از 1000 رکورد می باشد و با این روش عملا نمی توانم از UI استفاده کنم.
لطفا راهنماییم کنید.
باسلام
برای مشکل اولتون که نمیتونم کمکتون کنم و حتما خودتون باید trace کنید.
برای مشکل دوم باید خدمتتون عرض کنم که کاملا طبیعی هستش این مورد و lazy loading در DataGrid باعث این موضوع میشه
پیشنهاد من اینه که شما بیای دیتاگرید رو به یک لیست گلوبال Bind کنی و اطلاعات رو مستقیم از دیتابیس نریزی تو دیتاگرید، اول بریزی تو لیست بعد لیست به دیتاگرید متصل شده باشه و اطلاعات رو از لیست بخونه
اینطوری موقع خوندن سطرها دیگه به دیتاگرید کاری نداری و مستقیم با لیست کار میکنی. از Binding هم که استفاده کنی دیتاگرید از همون منبع لیست میخونه و مصرف حافظه هم دوبرابر نمیشه
موفق باشید.
پیشنهاد من اینه که شما بیای دیتاگرید رو به یک لیست گلوبال Bind کنی و اطلاعات رو مستقیم از دیتابیس نریزی تو دیتاگرید، اول بریزی تو لیست بعد لیست به دیتاگرید متصل شده باشه و اطلاعات رو از لیست بخونه
من این کار را انجام دادم جواب نگرفتم لطفا نمونه کد بدهید
سلام دوست من
حتما تا آخر امشب برات نمونه کد میذارم.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)