PDA

View Full Version : خارج کردن DataGridView از حالت sort



AmirAlimadadi
شنبه 24 مرداد 1388, 10:23 صبح
با سلام
دوستان، من یه grid دارم که می خوام بعد از اینکه sort (بر اساس یه ستون) انجام شد، دیگه سطرها از حالت sort شده خارج بشن، یعنی دیگه مرتب سازی در نظر گرفته نشه.
من برای این کار حالت SortMode رو برای تمام ستونها، روی Programatic تنظیم کردم، بعد خودم عملیات مرتب سازی رو بر اساسی که دلم می خواد انجام می دم، بعد از اون حتی حالت SortMode رو برای تمام ستونها، روی NotSortable قرار می دم، تا اینجا مشکلی ندارم، اما چه طوری بعد از عملیات مرتب سازی می تونم دیگه ترتیب داده ها رو از بین ببرم.
یعنی مثلا وقتی من در سطر انتهایی که خالی هست، داده اضافه می کنم و در نتیجه یه سطر به گرید اضافه می شه، اون سطر بعد از اضافه شدن، خود به خود بر اساس مرتب سازی جابجا می شه که من این رو نمی خوام، یعنی می خوام گرید بعد از عملیات Sort، دیگه مثل حالت عادی باشه و تاثیری از مرتب سازی نگیره.
ممنون

hozouri
شنبه 24 مرداد 1388, 11:36 صبح
توی رویداد های گرید یه رویداد به نام Sorted هست می تونی از اون استفاده کنی ...

Mojtaba.Kh
شنبه 24 مرداد 1388, 12:01 عصر
سلام
دوست من مشکلتون حل شد؟
با استفاده از رویداد sorted چطور میشه این کار رو انجام داد؟

AmirAlimadadi
شنبه 24 مرداد 1388, 14:29 عصر
سلام
دوست من مشکلتون حل شد؟
با استفاده از رویداد sorted چطور میشه این کار رو انجام داد؟

من نتونستم با این رویداد مشکلم رو حل کنم، چون این رویداد موقعی صدا زده می شه که عملیات مرتب سازی انجام شده، ولی مشکل من چیز دیگه ای هست، من نمی خوام تاثیر مرتب سازی بعد از عملیات باقی بمونه، با استفاده از SortMode همون طور که قبلا گفتم، نمی شه این مشکل رو حل کرد

hozouri
شنبه 24 مرداد 1388, 14:45 عصر
من نمی خوام تاثیر مرتب سازی بعد از عملیات باقی بمونه،
دوست عزیز من متوجه نشدم بلاخره می خواهید تاثیر مرتب سازی انجام بشه یا نه یا کلاً می خواهید که اصلاً کاربر مرتب سازی رو انجام نده ؟؟؟؟؟

AmirAlimadadi
شنبه 24 مرداد 1388, 14:56 عصر
ببنیند، من توی اولین پست هم گفتم، بعد از انجام عملیات مرتب سازی که طبعا سطرها رو مرتب می کنه (تاثیر در جابجایی سطرها دارد)، موقع اضافه کردن یه سطر به گرید (با استفاده از برنامه نویسی یا سطر آخر گرید)، اون سطر تازه هم بعد از اضافه شدن، به طور خودکار بر اساس مرتب سازی قبلی، مرتب می شه، یعنی در بین سطرها جابجا می شه، که من این تاثیر دوم رو نمی خوام.
فکر می کنم کاملا واضح باشه.

hozouri
شنبه 24 مرداد 1388, 15:04 عصر
دوست عزیز اگر شما دیتا گرید رو پایبند نکرده باشید خیلی راحت می تونید این کار رو انجام بدید ...
اگر پایبند کرده باشید که شرمنده من نمی دونم ...

AmirAlimadadi
شنبه 24 مرداد 1388, 16:13 عصر
ممنون از شما، اما کس دیگه ای نیست که بدونه

Mojtaba.Kh
سه شنبه 10 شهریور 1388, 12:34 عصر
ممنون از شما، اما کس دیگه ای نیست که بدونه

سلام
میتوان از کد زیر قبل از افزودن رکورد یا برای از بین بردن وابستگی دیتا گرید استفاده کرد

dataView.Sort = null

currencyManager.Position = dataView.Count
جهت نمایش رکورد اضافه شده در انتهای لیست

AmirAlimadadi
سه شنبه 10 شهریور 1388, 15:51 عصر
اون dataView چیه؟ منظورت کلاس هست یا یه شی که عضو DataGridView هست؟؟

Mojtaba.Kh
پنج شنبه 12 شهریور 1388, 14:46 عصر
اون dataView چیه؟ منظورت کلاس هست یا یه شی که عضو DataGridView هست؟؟


دوست من دیتا ویو کنترلی هست که اعمالی مثل جستجو،ویرایش،فیلتر،مرتب و حرکت کردن بین داده ها را داراست و همچنین قابل اتصال هست یعنی همانطور که کنترل ها را به سایر کنترلهای قابل اتصال مانند "دیتا ست" میتوان متصل کرد همان کار را نیز میتوانید با دیتا ویو بکنید
بعنوان مثال:

dataView = new DataView(dataSet.Tables["employeeTable"])
شما میتونید جدول دلخواه که قراره دیتاگرید اونو نمایش بده به شی دیتاویو نسبت بدید وبعد:

dataGridViewEmpList.DataSource = dataView;
با انتخاب خاصیت دیتاسورس از گریدویو میتونید از خاصیتهای دیتاویو و اثر اون در گریدویو بهرمند شوید که یکی از اونها خاصیت سورت اون هست.

Mohsen229266
جمعه 13 شهریور 1388, 09:26 صبح
سلام فکر میکنم منظور دوستمون اینه که وقتی روی هدر های ستون کلیک میکنیم عمل سرت بر حسب اون ستون انجام نشه درسته؟

AmirAlimadadi
شنبه 21 شهریور 1388, 10:52 صبح
دوست عزیز این DataView مشکل من رو حل نکرد، در واقع همون نتیجه ای رو می ده که Bind عادی می ده.