Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dataGridView сортировка, по числам 
:(
    Опции темы
rthsobakas
Дата 23.9.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



кто-нибудь в курсе как сделать сортировку(настроить вернее) по числам. То есть вот вы скинули грид  на форму ,заполнили его и в 1 колонке у вас  числа от 1 до 1000 например . Но он отсортирует не верно, так как он по символам сортирует строк.

PM   Вверх
CYBERDREAM
Дата 23.9.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



Column1.ValueType = typeof (Int32);

ну и значение тоже должны быть числовыми


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
rthsobakas
Дата 23.9.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



я как бы не программно делаю таблицу, я программно её заполняю только и очищаю. А все остальное делаю  в настройках грида.  

Это куда писать в  форм_лоад?
Код

Column1.ValueType = typeof (Int32);

ничего не измениться. 
PM   Вверх
CYBERDREAM
Дата 23.9.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



http://social.msdn.microsoft.com/Forums/en...54-a75e919f1b3d

тут подробно сие дело описывают


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
A5uKa
  Дата 23.9.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



ну там есть метод конечно ...
Код

    private dataGridView1_SortCompare (_ : object,  e : System.Windows.Forms.DataGridViewSortCompareEventArgs) : void
    {
        e.SortResult = 
            if (Convert.ToInt32(e.CellValue1) > Convert.ToInt32(e.CellValue2)) 0
            else 1;
        e.Handled = true;

но это в одну сторону  smile  и плохо пахнет.
PM   Вверх
rthsobakas
Дата 23.9.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



A5uKa,  совсем плохо как-то. 
хмм... подскажите хоть как в гугле правильно сформулировать тогда? 


Смысл в том что как бы надо чтобы строка ,которая добавляется должна становиться первой ,смещая остальные вниз. 
PM   Вверх
A5uKa
  Дата 23.9.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



Цитата(rthsobakas @ 23.9.2010,  15:04)
Смысл в том что как бы надо чтобы строка ,которая добавляется должна становиться первой ,смещая остальные вниз.

Так можно обработать добавление.
PM   Вверх
CYBERDREAM
Дата 23.9.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



если датагрид биндится к таблице, то в таблицу вставляй новую запись в начало.

DataGridView sort numeric


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
rthsobakas
Дата 23.9.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



добавление выглядит так
Код

dgvDump.Rows.Add(d,f,g);

и оно вставляет строку в самый конец.

Добавлено через 1 минуту и 41 секунду
Цитата

если датагрид биндится к таблице, то в таблицу вставляй новую запись в начало.

он биндится к XMl  smile 


PM   Вверх
CYBERDREAM
Дата 23.9.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



опля  smile 
Код

dataGridView1.Rows.Insert(0,d,f,g);


Это сообщение отредактировал(а) CYBERDREAM - 23.9.2010, 15:12


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
A5uKa
  Дата 23.9.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



А вариант работать с XML и Grid через DataSource - неа ?
PM   Вверх
CYBERDREAM
Дата 23.9.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



не кошерно это)  smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
rthsobakas
Дата 23.9.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Цитата

dataGridView1.Rows.Insert(0,d,f,g);


хмм спасибо, возьму на заметку.

Цитата

А вариант работать с XML и Grid через DataSource - неа ?

последнего нет в экспресс версии. Я как бы  бесплатку использую  smile 
PM   Вверх
SergeyN7
Дата 22.7.2011, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.7.2011

Репутация: нет
Всего: нет



Можно реализовать заполнение нулями начала строк ячеек до определенной длины строки, затем сортировать, а потом снова удалить нули:

//Добавляем нули в столбец, по которому надо сортировать

            string str2;
            for (int kt1 = 0; kt1 < (dataGridView1.RowCount - 1); kt1++)
            {
                if (dataGridView1.Rows[kt1].Cells[2].Value != null)
                {
                    str2 = dataGridView1.Rows[kt1].Cells[2].Value.ToString();
                    while (str2.Length != 5)
                    {
                        str2 = str2.Insert(0, "0");
                    }
                    dataGridView1.Rows[kt1].Cells[2].Value = str2;
                }
            }

//Сортируем

this.dataGridView1.Sort(dataGridView1.Columns["Column3"], ListSortDirection.Descending);

//Удаляем нули в столбце

            string str2;
           for (int kt1 = 0; kt1 < (dataGridView1.RowCount - 1); kt1++)
           {
               if (dataGridView1.Rows[kt1].Cells[2].Value != null)
               {
                   str2 = dataGridView1.Rows[kt1].Cells[2].Value.ToString();
                   while (str2.Substring(0, 1) == "0")
                   {
                       str2 = str2.Remove(0, 1);
                   }
                   dataGridView1.Rows[kt1].Cells[2].Value = str2;
               }
           }

В итоге числа корректно будут отсортированы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.