View Full Version : سوال: جابجایی سطرهای دیتاگریدویو توسط کاربر
tara1367
دوشنبه 13 آبان 1392, 09:55 صبح
سلام دوستان
من میخوام در برنامم کاربر با زدن دکمه هایی که خودم روی فرم گذاشتم مثلا یکی از اونها علامت جهت بالا و دیگری پایین است ترتیب سطرهای گرید ویو مطابق با میل کاربر عوض شود.
با تشکر
tara1367
دوشنبه 13 آبان 1392, 12:06 عصر
دوستان کسی نمی دونه؟؟؟
hamid_hr
دوشنبه 13 آبان 1392, 12:50 عصر
بايد سطرشو بفهمي چندمين سطره
int x = dgv.selectcell[0].rowindex;
بعد اطلاعات اين سطرو بريزي داخل متغيير ها
بعد بياي x-- كني
بعد اون اطلاعاتو تو سطر جديد insert كني
dgv.Rows.Insert(x,"","","","","");
tara1367
دوشنبه 13 آبان 1392, 12:57 عصر
ممنون ولی اطلاعات سطر قبلی که پاک نمیشه با add کردن دوباره یک سطر مثل قبلی اضافه میشه.
veniz2008
دوشنبه 13 آبان 1392, 13:15 عصر
سلام.
یه راهش اینه که دیتاتیبل رو دستخوش تغییرات کنی و دوباره دیتاتیبل رو به گرید نسبت بدی (سرعت اعمال تغییرات روی دیتاتیبل خیلی بیشتر از سرعت اعمال تغییرات روی خود گرید هست. چون دیتاتیبل شما درون رم قرار میگیره و کارکردن باهاش به مراتب سریعتر از خود گرید هست).
مثلا برای حرکت از پایین به بالا :
1. ابتدا محتویات سطر بالا رو بردارید (سطر بالای سطر جاری).
2. سطر جاری رو جایگزین سطر بالایی کنید.
3. سطری رو که در مرحله 1 برداشتید، جایگزین سطر جاری کنید.
if(dataGridView1.CurrentRow.Index > 0)
{
object[] rowmove = dt.Rows[dataGridView1.CurrentRow.Index -1].ItemArray;
dt.Rows[dataGridView1.CurrentRow.Index-1].ItemArray = dt.Rows[dataGridView1.CurrentRow.Index].ItemArray;
dt.Rows[dataGridView1.CurrentRow.Index].ItemArray = rowmove;
dataGridView1.DataSource = dt;
}
شرط if هم بخاطر این هست که اگر سطر جاری، اولین سطر باشه دیگه نمیشه رو به بالا حرکت کرد.
موفق باشید.
tara1367
چهارشنبه 15 آبان 1392, 11:35 صبح
ممنون پس یعنی اول باید datasource دیتا تیبل رو به دیتاسورس دیتاگریدویو تغییر بدم درسته؟؟
mohsen_popo
چهارشنبه 15 آبان 1392, 11:40 صبح
سلام ..
چرا این قدر خودتون خسته میکنید ..برید از کنترل های Dev استفاده کنید........ راحت.... اصلا نیاز به کد نویسی نیست ....امکانتد دیگری هم در اختیارت می زاره.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.