PDA

View Full Version : سوال: جلوگیری از برگشتن به سطر اول Dgv بعد از عمل رفرش



mhsmity
پنج شنبه 16 آبان 1392, 18:43 عصر
با سلام
وقتی دیتاگریدو رفرش می شه به سطر اول بر می گرده چه طوری جلو این کار ور بگیریم؟

مثلا وقتی سطری رو ویرایش می کنم بعد از عمل ویرایش برای نمایش اطلاعات باید عملیات روفرش رو انجام دهم.
بنابراین اسکرول دیتاگردیدو حرکت کرده و به ابتدای دیتا گردیو می رود.

Mahmoud.Afrad
پنج شنبه 16 آبان 1392, 19:36 عصر
وقتی مطمئن شدی اطلاعات در دیتابیس آپدیت شد اونوقت همون سطر دیتاگرید رو ویرایش کن. در اینصورت نیاز نیست دوباره اطلاعات رو از دیتابیس دریافت کنی.

mhsmity
جمعه 17 آبان 1392, 00:08 صبح
از توجه شما ممنونم.
راحل بسیار خوب و منطقی هستش خیلی در سرعت برنامه تاثیر گذار هستش ولی
اگه تغییر ایجاد شده تقریبا روی همه سطرها اثر گذار باشه و رفرش شدن کامل حتما ضروری باشه. باید چی کار کرد؟

Mahmoud.Afrad
جمعه 17 آبان 1392, 16:13 عصر
اندیس سطر جاری رو نگه دارید و بعد از پر کردن دیتاگرید سطر جاری رو برابر اون اندیس قرار بده و اسکرول کن به اون اندیس:

if (dataGridView1.CurrentRow != null)
{
int index = dataGridView1.CurrentRow.Index;
// fill datagrid
dataGridView1.CurrentCell = dataGridView1.Rows[index].Cells[0];
dataGridView1.FirstDisplayedScrollingRowIndex = index;
}
else
{
// fill datagrid
}

mhsmity
جمعه 17 آبان 1392, 17:37 عصر
اندیس سطر جاری رو نگه دارید و بعد از پر کردن دیتاگرید سطر جاری رو برابر اون اندیس قرار بده و اسکرول کن به اون اندیس:

if (dataGridView1.CurrentRow != null)
{
int index = dataGridView1.CurrentRow.Index;
// fill datagrid
dataGridView1.CurrentCell = dataGridView1.Rows[index].Cells[0];
dataGridView1.FirstDisplayedScrollingRowIndex = index;
}
else
{
// fill datagrid
}


این کده ها سطر جاری رو به ابتدا آورده و سلول اول رو انتخاب می کند

به پست اول خودتون دقت کنید که فرمودید سطر رو فقط ویرایش کند و عمل رفرش رو انجام ندهم

حالا من همین طور چیزی مد نظر می باشد اما عمل رفرش صورت می گیرد.
اگه شما سطر تغیر کرده رو ویرایش کنید در همون سطر و موقیت اسکرول خواهید ماند.

Mahmoud.Afrad
جمعه 17 آبان 1392, 19:13 عصر
کدتون رو بزارید.