PDA

View Full Version : امکان مرتب سازی datagridview توسط کاربر



windowsyar
شنبه 03 شهریور 1397, 18:32 عصر
با سلام
یک دیتاگریدویو دارم می خوام با دو تا دکمه بالا و پایین کاربر بتونه مرتبش بکند
بدبهی است که مشکل اصلیش ذخیره سازی تو بانک هست.

alexmcse
شنبه 03 شهریور 1397, 19:15 عصر
دوست عزیز
چه چیزی را مرتب کند؟( بر چه اساسی مرتب کند)
سوال شما ناقص است

رامین مرادی
یک شنبه 04 شهریور 1397, 07:53 صبح
چی رو بعد از مرتب سازی باید ذخیره کنه؟
اگه منظورتون جدول مرتب شدتونه، چه نیازی به اینکاره آخه. هر بار که داده اتضافه شد جدولو از نو بازسازی کنید!!! مرتب سازی فقط ظاهر جداول رو باید مرتب کنه. داده ها هرجور و با هر ترتیبی ذخیره شدن مهم نیست
برای مرتب سازی دیتاگرید از کد زیر میتونی استفاده کنی


dataGridView1.Sort(dataGridView1.Columns[1], ListSortDirection.Ascending);


آرگومان اول مربوط به ستونی هست که میخواهید مرتب شود.
آرگومان دوم هم مربوط به نوع مرتب سازی(سعودی - نزولی) است.

windowsyar
یک شنبه 04 شهریور 1397, 09:12 صبح
ممنون از پاسخگویی alexmcse (http://barnamenevis.org/member.php?248227-alexmcse) و رامین مرادی (http://barnamenevis.org/member.php?146794-%D8%B1%D8%A7%D9%85%DB%8C%D9%86-%D9%85%D8%B1%D8%A7%D8%AF%DB%8C)


ببخشید شاید سوال رو بد پرسیدم
در نرم افزار من کاربر میاد مثلا 7 تا سطر اضافه می کنه
نمی خوام بر اساس یک ستون مرتب کنم
می خواهم کاربر خودش بتونه سطرها رو بالا پایین کنه و ذخیره کنه و مرتب کنه


-------------

پیشنهاد خودم اینه که کاربر بیاد سطر ها رو بالاپایین کنه
بعد از آخر با یک دونه حلقه از بالا تا پایین یک آی دی به همش بدیم و ذخیره کنی
ولی کدشو بلد نیستم

رامین مرادی
یک شنبه 04 شهریور 1397, 09:33 صبح
دوتا ستون کلید بزار بعد یکیش برا بالا باشه یکیش برا پایین

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


int a=1;
int b=2;
int temp
temp=a;
a=b;
b=temp;



این کد مقدار a و B رو جابجا میکنه به کمک یه متغییر دیگه. حالا شما هم همین روش رو تو جدولتون پیاده سازی کنید.
آی دی رو مگه اتو نامبر نذاشتید؟
شما به اون صورتی که من گفتم داده هاتونو جابجا کنید و در آخر کد ذخیره خودتون رو بنویسید

windowsyar
یک شنبه 04 شهریور 1397, 23:31 عصر
دوتا ستون کلید بزار بعد یکیش برا بالا باشه یکیش برا پایین

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


int a=1;
int b=2;
int temp
temp=a;
a=b;
b=temp;



این کد مقدار a و B رو جابجا میکنه به کمک یه متغییر دیگه. حالا شما هم همین روش رو تو جدولتون پیاده سازی کنید.
آی دی رو مگه اتو نامبر نذاشتید؟
شما به اون صورتی که من گفتم داده هاتونو جابجا کنید و در آخر کد ذخیره خودتون رو بنویسید


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

Mahmoud.Afrad
دوشنبه 05 شهریور 1397, 00:07 صبح
از متدهای removeAt , remove , insert , ... برای جابجایی استفاده کنید.
اگر ارتباطی بین این جدول با جدول دیگری در دیتابیس باشد نبایست کلید رو تغییر بدید. در این مورد میتونید index سطرها رو ذخیره کنید.

رامین مرادی
دوشنبه 05 شهریور 1397, 08:26 صبح
از متدهای removeAt , remove , insert , ... برای جابجاییی استفاده کنید.
اگر ارتباطی بین این جدول با جدول دیگری در دیتابیس باشد نبایست کلید رو تغییر بدید. در این مورد مییتونید index سطرها رو ذخیره کنید.

بهترین راه به نظرم همین ایندکس گذاریه. من خودم تو یه پروزه برای جابجایی نود های چارت سازمانی بر اساس سلیقه مدیر یه فیلد اضافی گذاشتم به اسم level که کاربر به اون سطح میده مثلا 1 یا 2 یا 3 و تو نشون دادن هم بر اساس اون مرتب میکنم فرزندهای همون نود رو