Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > dataGridView не сортирует последнюю строку


Автор: _int64 7.5.2007, 20:03
есть форма и dataGridView1

Код

private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.Columns.Add("Main", "Main");
            dataGridView1.Rows.Add(3);

            dataGridView1[0, 0].Value = "Б";
            dataGridView1[0, 1].Value = "А";
            dataGridView1[0, 2].Value = "АББ";
            dataGridView1[0, 3].Value = "Г";
        }


в итоге при сортировке "Г" всегда остается на своем месте ((

Автор: Retro 7.5.2007, 20:14
Цитата(_int64 @  7.5.2007,  19:03 Найти цитируемый пост)
dataGridView1.Rows.Add(3);

Может так:
Код

dataGridView1.Rows.Add(4);


Только я плохо знаю dataGrid. Не сталкивался. smile 

Автор: Naum 9.5.2007, 11:05
Цитата(_int64 @  7.5.2007,  21:03 Найти цитируемый пост)
в итоге при сортировке "Г" всегда остается на своем месте (( 

Не понял. А как должно быть?

Автор: _int64 10.5.2007, 08:59
Naum, 
можно ведь сортировать не по алфавиту, а наоборот  smile 

пока только нашел вариант не использовать последнюю строку... но это нехороший варинат

Автор: ivashkanet 10.5.2007, 09:26
Занчицца так:
1) (самое главное) Это не хорошая практика работать с DataGridView как с хранилищем данных. DataGridView предназначен для ОТОБРАЖЕНИЯ данных и редактировании этих данных ПОЛЬЗОВАТЕЛЕМ, а не для редактирования через код.
Создай объект DataTable, скажи DataGridView, что именно ее он будет отображать  (dataGridView1.DataSource =dataTable1) и редактируй таблицу на здоровье

2) Как сказал Retro, ты говоришь, что добавляешь 3 строчки, а добавляешь 4. Из-за этого "Г" попадает в строку ввода наовй строки (которая помечена *), т.е. ее еще нет, а значит и сортировать ее не надо 

Следующий код работает верно:
Код

            dataGridView1.Columns.Add("Main", "Main");
            dataGridView1.Rows.Add(4);
            dataGridView1[0, 0].Value = "Б";
            dataGridView1[0, 1].Value = "А";
            dataGridView1[0, 2].Value = "АББ";
            dataGridView1[0, 3].Value = "Г";

            dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Descending);

Автор: _int64 10.5.2007, 15:57
спасибо, понятно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)