PDA

View Full Version : سوال: آپدیت دیتا گرید ویو



niknam_mh
جمعه 28 مهر 1391, 10:43 صبح
سلام دوستان عزیز
وقتی یک ریکورد از یک دیتا گرید ویو را ویرایش می کنیم اگر بخواهیم اطلاعات را از طریق دیتا آداپتور ریست (fill)کنیم کاربر از ویرایشی که انجام داده مطمئن نیست چون که دیتا هم ریست می شود و محل فوکوس همچنین اسکرول بارز تغییر می کنه حالا سوال من اینه که چه کنیم که طبق شکل زیر پس از ویرایش یک رکورد دیتاگرید یا همان سطر که در وسط یا هر جای دیگه هست آپدیت بشه و اطلاعات در رویت کاربر باشه.
نمی دانم منظورم را خوب رساندم یا نه لطفا راهنمایی کنید خیلی نیاز دارم . ممنون از لطف همگی


94140

r. salehi
جمعه 28 مهر 1391, 13:29 عصر
سلام
نمی دونم منظور شما را درست متوجه شدم یا خیر اما طبق استنباطی که از پست شما داشتم موارد زیر را عرض می کنم که امیدوارم براتون مفید واقع بشه.
وقتی یک رکورد را در دیتاگریدویو ویرایش میکنید اطلاعات آنی در دیتاتیبل ثبت میشه و اگر DataTable مربوطه را با دیتا آداپتورش UpDate کنید. تغییرات در بانک هم ثبت خواهد شد. اما اگر یک دیتاگریدویو داشته باشید که متصل به یک دیتاتیبل باشه و شما رکوردی از دیتاتیبل را از محل دیگری به غیر از خود دیتاگریدویو تغییر بدید، تغییرات با کمی تاخیر در دیتاگریدویو نمایش داده خواهد شد. به عنوان مثال شما اطلاعات دیتا تیبل متصل به دیتاگریدویو را با یک تکستباکس در برنامه خودتون تغییر دادید.
درچنین حالتی برای اینکه شما بتونید این تغییرات را سریعا در دیتاگریدویو هم مشاهده کنید لازمه که دیتاگریدویو را رفرش کنید علاوه بر این برای اینکه کاربر محل رکورد ویرایش شده را هم بدونه لازمه دوباره رکورد ویرایش شده را فوکوس کنید. برای دیتاگرید ویو دو متد Refresh و RefreshEdit وجود دارند که اولی کل دیتاگریدویو و دومی Cell را روزآمد می کنند.
با توجه با ظاهر برنامه قطعا از BindingSource استفاده کردید پس روش فوکوس مجدد روی رکورد ویرایش شده را هم میدونید به احتمال قریب به یقین.
امیدوارم توضیح اضافه نداده باشم و کمکی کرده باشم
موفق باشید

niknam_mh
جمعه 28 مهر 1391, 17:42 عصر
سلام
از راهنمایتون ممنون
من هم از refresh و هم refreshedit استفاده کردم ولی مشکلم حل نشد.
ببینید وقتی ما اطلاعات را درون دیتابیس ویرایش یا اضافه می کنیم حالا می خواهیم این اطلاعات را درون دیتا گرید ویو که در فرم حاضر هست به روز کنیم اگر از خاصیت FILL دیتا آداپتور استفاده کنیم کل دیتا گرید ریست می شه ما می خواهیم بدون اینکه دیتا ریست بشه و محل اسکرولزبار و فوکوس تغییر پیدا کنه اطلاعات در همان محل به صورت آنی آپدیت بشه.
اگر اساتید عزیز راهنمایی کنند ممنون میشم.

ehsan1371
جمعه 28 مهر 1391, 18:10 عصر
دوست عزیز شما باید کد این رو بنویسید که زمانی که زدی ویرایش بانک آپدیت شود
این کد رو بنویس درست میشه
;(this.your nameTableAdapter.Update(this.your name DataSet

r. salehi
جمعه 28 مهر 1391, 20:20 عصر
سلام مجدد
شما با BindingSource آشنایی دارید؟ BindingSource یک کنترل توانمند هست برای فیلتر کردن، رفتن به رکورد اول، اخر، بعدی و کارهای اینچنین. همین طور برای مشخص کردن موقعیت فعلی رکورد انتخاب شده با متد Position. طریق استفاده از اون هم دقیقا مثل وقتیه که شما یک دیتاسورس برای دیتاگریدویو انتخاب می کنید. به عبارتی اول یک BindingSource تعریف می کنید بعد اون جدولی را که به عنوان دیتاسورس برای دیتاگریدویو تعریف می کنید را به عنوان دیتاسورس BindingSource قراربدید و نهایتا BindingSource را به عنوان دیتا سورس دیتاگریدویو قرار بدید. دقیقا مثل وقتی که از یک سیم رابط با یک دوشاخ و یک پریز استفاده میکنید!
حالا شما قادرید از این توانمندیهای BindingSource برای تعیین موقعیت رکورد و همینطور فیلترکردن و امثالهم استفاده کنید
موفق باشید

niknam_mh
شنبه 29 مهر 1391, 06:18 صبح
سلام مجدد
شما با BindingSource آشنایی دارید؟ BindingSource یک کنترل توانمند هست برای فیلتر کردن، رفتن به رکورد اول، اخر، بعدی و کارهای اینچنین. همین طور برای مشخص کردن موقعیت فعلی رکورد انتخاب شده با متد Position. طریق استفاده از اون هم دقیقا مثل وقتیه که شما یک دیتاسورس برای دیتاگریدویو انتخاب می کنید. به عبارتی اول یک BindingSource تعریف می کنید بعد اون جدولی را که به عنوان دیتاسورس برای دیتاگریدویو تعریف می کنید را به عنوان دیتاسورس BindingSource قراربدید و نهایتا BindingSource را به عنوان دیتا سورس دیتاگریدویو قرار بدید. دقیقا مثل وقتی که از یک سیم رابط با یک دوشاخ و یک پریز استفاده میکنید!
حالا شما قادرید از این توانمندیهای BindingSource برای تعیین موقعیت رکورد و همینطور فیلترکردن و امثالهم استفاده کنید
موفق باشید



ممنون دوست عزیز
اگر تاپیک من را باز بخوانید سوال من در باره چیز دیگری است.
اگر میشه دوستان عزیز بیشتر راهنمایی کنند

negar salehy
شنبه 29 مهر 1391, 11:32 صبح
سلام
این مشکل را من هم دارم.
لطفا با سورس یا مثال راهنمایی کنید ممنون

r. salehi
شنبه 29 مهر 1391, 13:21 عصر
دوست عزیز شما باید بعد از update روی همون موقعیت فوکوس کنید. شما Bindingsource را یک ملاحظه ای بفرمایید

niknam_mh
شنبه 29 مهر 1391, 16:28 عصر
دوستان کسی نیست راهنمایی کنه ؟

niknam_mh
یک شنبه 30 مهر 1391, 15:52 عصر
سلام اساتید گرامی
کسی نمی تونه این مشکل من را حل کنه ؟
خیلی گیرم.

Hybrid
یک شنبه 30 مهر 1391, 18:49 عصر
سلام ، دوستان این موضوع زیاد هم پیچیده نیست ! شما میتونید یک زیر برنامه بنویسید که این کا رو به راحتی واستون انجام بده ، من در برنامه ای که سورسش رو هم در سایت (http://barnamenevis.org/showthread.php?331652-%D8%B3%D9%88%D8%B1%D8%B3%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%B3%D8%A7%D8%AF%D9%87-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%B9%DA%A9%D8%A7%D8%B3%DB%8C) قرار دادم از همین روش استفاده کردم لطفا سورسش رو مطالعه کنید جوابتون رو میگیرید.

fr33m4n
پنج شنبه 03 اسفند 1391, 13:02 عصر
سلام من خاصیت enable editing رو توی دیتاگرید ویو فعال کردم ، می خوام وقتی رکوردهای دیتاگرید ویو رو ویرایش می کنم ، و روی دکمه آپدیت که روی فرمم قرار دادم کلیک می کنم تمام تغییراتی که دادم توی بانک اعمال بشه ، با تشکر

fr33m4n
جمعه 04 اسفند 1391, 16:09 عصر
کسی هست کمک کنه؟

fr33m4n
شنبه 05 اسفند 1391, 22:34 عصر
کسی می تونه کمک کنه؟

djhooman
چهارشنبه 01 خرداد 1392, 23:07 عصر
اما مشکلی که این نوعی که گفتید داره اطلاعات با حجم زیاد مقلا 20.000 رکورد رو میتونه به سرعت و توی شبکه به راحتی انجام بده ؟؟؟؟؟

ممکنه بشه اما زمان بسیار زیادی میبره که برای کاربر جالب نیست ... !

روش دیگه هست ؟

systam
پنج شنبه 02 خرداد 1392, 17:48 عصر
سلام
برای ویرایش اطلاعات راههای زیادی هست که میشه انجام بدید
باید شما این کار طوری انجام بدید که بدون خواندن دوباره اطلاعات درون دیتا گرید نمایش داده بشه

سلام من خاصیت enable editing رو توی دیتاگرید ویو فعال کردم ، می خوام وقتی رکوردهای دیتاگرید ویو رو ویرایش می کنم ، و روی دکمه آپدیت که روی فرمم قرار دادم کلیک می کنم تمام تغییراتی که دادم توی بانک اعمال بشه ، با تشکر
من این کار رو تحت وب انجام دادم و عملی است و لی تحت ویندوز تا حالا این کار نکردم

به نتیجه رسید خبر میکنم


یا علی