PDA

View Full Version : سوال: چه طوری به آخرین رکورد DataGrid بروم



ghrzarei
دوشنبه 16 آذر 1388, 21:55 عصر
دوستان سلام
ببخشید دوستان اگر سوالم ساده و یا پیش پا افتاده است من یاد ندارم گشتم پیدا هم نکردم

من از دیتا گرید فقط جهت نمایش اطلاعات استفاده می کنم و عملیات ایجاد و حذف و ویرایش را از طریق دیتا گرید انجام نمی دهم. ارتباط دیتا گرید از طریق کد نویسی انجام می شود و از ویزارد هم استفاده نمی کنم. حال مشکلم اینجاست که :
اولا چطوری بعد از هر رفرش نمودن اطلاعات کرسر به انتهای دیتا گرید برود و کاربر بتونه آخرین رکورد اضافه شده را ببیند .
در ثانی اگر رکوردی از بین رکوردهای یک دیتا گرید انتخاب و داخل برنامه عملیات ویرایش صورت گرفت و سپس عملیات رفرش انجام شد همان رکورد (ویرایش شده) به صورت انتخاب شده باشد یا( selected) یا ساده تر بگم چطوری میشه یک چیزی شبیه bookmark استفاده کرد

shahab_ss
دوشنبه 16 آذر 1388, 22:16 عصر
پیشنهاد من به شما اینه که :
قبل از عمل Update و بعد از عمل Insert کلید سطر مورد نظرت رو یه جایی نگه دار.بعد که اون عمل انجام شد توسط این تابع :
http://barnamenevis.org/forum/showthread.php?t=175758
اون رو Search کن. بعد از پیدا شدن همون اتفاقی رخ میده که شما انتظارش رو داری

sd.CSharpProgrammer
دوشنبه 16 آذر 1388, 23:01 عصر
اولا چطوری بعد از هر رفرش نمودن اطلاعات کرسر به انتهای دیتا گرید برود و کاربر بتونه آخرین رکورد اضافه شده را ببیند .


در ثانی اگر رکوردی از بین رکوردهای یک دیتا گرید انتخاب و داخل برنامه عملیات ویرایش صورت گرفت و سپس عملیات رفرش انجام شد همان رکورد (ویرایش شده) به صورت انتخاب شده باشد یا( selected) یا ساده تر بگم چطوری میشه یک چیزی شبیه bookmark استفاده کرد

سلام دوست عزیز.

برای سوال اولت میتونی از این کد استفاده کنی. با استفاده از این دستور آخرین سطر دیتاگرید انتخاب میشه :



foreach (DataGridVewRow row in GridView.Rows)
row.Selected = false;

GridView.Rows[GridView.Rows.Count - 1].Selected = true;


توضیح : با این کد , ابتدا همه سطرهای دیتاگرید از حالت انتخاب خارج می شوند و پس از این کار آخرین سطر گریدویوو انتخاب میشه. حلقه foreach برای این استفاده شده که غیر از سطر آخر بقیه سطرها در حالت انتخاب نباشند.

برای سوال دومت میونی قبل از شروع عملیات ویرایش رکورد , اندیس سطر مورد نظر رو تو یه متغیر (مثلاً به اسم editedRecordIndex) نگهداری کنی و بعد از انجام عملیات ویرایش , از کد قبل استفاده کنی منتها تو دستور آخر بجای انتخاب رکورد آخر رکورد مورد نظر رو به اینصورت انتخاب کنی :



foreach (DataGridVewRow row in GridView.Rows)
row.Selected = false;

GridView.Rows[editedRecordIndex].Selected = true;



موفق باشی