View Full Version : مرتب کردن اطالاعات بر اساس حروف الفبا در comboBox
  
rezaiy.ali
دوشنبه 26 آذر 1386, 13:12 عصر
با سلام
من اطلاعاتم را از View می خونم و داخل comboBox میریزم.
حالا چطو رمی تونم اطلاعات داخل comboBox را بر اساس حروف الفبا مرتب کنم.
با تشکر
hassan razavi
دوشنبه 26 آذر 1386, 13:18 عصر
Combo خاصیتی به نام Sorted داره که با true کردن آن ، خودش آیتمها رو بر اساس حروف الفبا Sort میکنه
mamali_programer
دوشنبه 26 آذر 1386, 13:29 عصر
سلام
اگر بخواهیم که مثلا برعکس سورت کنه باید چه کاری انجام بدیم
sinpin
دوشنبه 26 آذر 1386, 13:56 عصر
سلام
اگر بخواهیم که مثلا برعکس سورت کنه باید چه کاری انجام بدیم
باید کلاسی که به کامبوباکس بایند شده اینترفیس IComparable رو پیاده سازی کنه و متد CompareTo اون رو به شکلی که دوست دارید تغییر بدید...
sinpin
دوشنبه 26 آذر 1386, 13:58 عصر
یک مثال از آدرس : http://www.osix.net/modules/article/?id=672 (http://www.osix.net/modules/article/?id=672)
 What if we wanted to order them descending rather than ascending? 
Well, the CompareTo() method returns an int value: positive, zero or negative if the two objects are respectively minor/major, equal, major/minor. 
So to do the descending order we could just multiply the result of the CompareTo() method by -1 and write the User class like this:
 
class User : IComparable { 
        private string firstName; 
        private string lastName; 
        public User(string fn, string ln) { 
            this.firstName=fn; 
            this.lastName=ln; 
        } 
        public int CompareTo(object obj) { 
            User u=(User)obj; 
            if (this.lastName==u.lastName) { 
                return -1*this.firstName.CompareTo(u.firstName);                 
            } else { 
                return -1*this.lastName.CompareTo(u.lastName); 
            } 
        } 
        public override string ToString() { 
            return lastName+" "+firstName; 
        } 
    }
sinpin
دوشنبه 26 آذر 1386, 14:12 عصر
سلام
اگر بخواهیم که مثلا برعکس سورت کنه باید چه کاری انجام بدیم
یک روش آسونتر هم داره : این که لیست سورت شده در کامبوباکس رو مثلا به یک ArrayList انتقال بدید و بعد متد Reverse() رو call کنید :
ArrayList list = ArrayList.Adapter(comboBox1.Items);
list.Sort();
To reverse, call list.Reverse();
rezaiy.ali
دوشنبه 26 آذر 1386, 14:53 عصر
با تشکر از شما hassan razavi (http://barnamenevis.org/forum/member.php?u=5419)
اما من اطلاعات را از View می خونم و View دو تا خروجی داره - اولی برای dispalyMember  و دومی بار valueMember .
زمانی که از خاصیت sotr استفاده می کنم اجاز چنین کاری را نمیده.
rezaiy.ali
پنج شنبه 29 آذر 1386, 16:35 عصر
دوستان کسی نیست که راهنمایی کند؟
hassan razavi
پنج شنبه 29 آذر 1386, 16:51 عصر
اگه از DataView استفاده میکنید از خاصیت Sort خود DataView استفاده کنید و به هر صورتی که دوست دارید (صعودی - نزولی) داده رو Sort کنید و بعد به Comno متصل کنید. البته من تاحالا تست نکردم که بعد از اتصال ، با تغیر Sort یک DataView ، روی Combo اعمال میشه یا نه؟
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.