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

Поиск:

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


Бывалый
*


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

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



У меня не получается добавить новую строку (а тем более правило для создания строк) в таблицах. :(
Как сделать так чтобы можно было создать новую строку в 2 таблицах и соответственно данные в ней привязать к коллекции. 
Все создание строк работает только на этом этапе  smile 
Код

dgv1.Add(new CLASS_dgv1(0, "", "", "", "", "", "", ""));
dgv1.Add(new CLASS_dgv1(1, "", "", "", "", "", "", ""));            
                        
dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));


Строки можно добавлять и сортировать. Пока я не нажимаю private void toolStripButton1_Click(object sender, EventArgs e)
Ну и соответственно еще проблема, не работает сортировка в dataGridView...    
Цитата
Если пользователь прокрутит control вниз до последней строчки, будет отображена дополнительная, специальная строчка для внесения новой записи. Такая строчка всегда помечена символом звездочки на заголовке. Когда пользователь любым способом перемещается в эту строку, DataGridView добавляет новую запись со значениями по умолчанию. Если фокус ввода находится в этой строке, и пользователь нажимает Esc, новая запись пропадает, а фокус ввода перемещается на строчку выше.

Звездочка после нажатия toolStripButton1_Click также исчезает.

Мой код:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq; 
using System.Text;
using System.Windows.Forms;

namespace Set1DataWork
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        class CLASS_dgv1//класс для 1 таблицы
        {
            public CLASS_dgv1(int _IndexTable1, string _FactoryID, string _IDComplete, string _Departament, string _Responsible, string _Building, string _Room, string _Comment)
            {
                Column0_IndexTable1 = _IndexTable1;
                Column01_FactoryID = _FactoryID;                        
                Column02_IDComplete = _IDComplete;
                Column03_Departament = _Departament;
                Column04_Responsible = _Responsible;
                Column05_Building = _Building;
                Column06_Room = _Room;
                Column07_Comment = _Comment;
                               
            }
            public int Column0_IndexTable1
            {
                get;
                set;
            }
            public string Column01_FactoryID
            {
                get;
                set;
            }
            public string Column02_IDComplete
            {
                get;
                set;
            }
            public string Column03_Departament
            {
                get;
                set;
            }
            public string Column04_Responsible
            {
                get;
                set;
            }
            public string Column05_Building
            {
                get;
                set;
            }
            public string Column06_Room
            {
                get;
                set;
            }
            public string Column07_Comment
            {
                get;
                set;
            }
            
        }

        class CLASS_dgv2 //класс для 2 таблицы
        {
            public CLASS_dgv2(int _IndexTable2, string _Brand, string _Recruitment, string _RegistrationID, string _SubComment, string _Notes)
            {
                Column00_IndexTable2 = _IndexTable2;
                Column08_Brand = _Brand;
                Column09_Recruitment = _Recruitment;
                Column10_RegistrationID = _RegistrationID;
                Column11_SubComment = _SubComment;
                Column12_Notes = _Notes;
            }
            public int Column00_IndexTable2
            {
                get;
                set;
            }
            public string Column08_Brand
            {
                get;
                set;
            }
            public string Column09_Recruitment
            {
                get;
                set;
            }
            public string Column10_RegistrationID
            {
                get;
                set;
            }
            public string Column11_SubComment
            {
                get;
                set;
            }
            public string Column12_Notes
            {
                get;
                set;
            }
        }

        
        List<CLASS_dgv1> dgv1;        
        List<CLASS_dgv2> dgv2;   
        List<CLASS_dgv2> dgv2_;         
         
                   
        private void toolStripButton1_Click(object sender, EventArgs e)
        {            
            if (dgv1 == null)
                dgv1 = new List<CLASS_dgv1>();
            if (dgv2 == null)
                dgv2 = new List<CLASS_dgv2>();
                      
            
            dgv1.Add(new CLASS_dgv1(0, "", "", "", "", "", "", ""));
            dgv1.Add(new CLASS_dgv1(1, "", "", "", "", "", "", ""));            
                        
            dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));            
            
           
            dataGridView1.DataSource = dgv1;  
            IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, 0].Value));
            dgv2_ = query.ToList<CLASS_dgv2>(); 
            dataGridView2.DataSource = dgv2_;
            dataGridView2.Refresh(); 
        }             
      
              
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv2 != null & e.RowIndex >= 0)
            {
                IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, e.RowIndex].Value));
                dgv2_ = query.ToList<CLASS_dgv2>();
                dataGridView2.DataSource = dgv2_;
                dataGridView2.Refresh();
            }
        }
    }
}


Это сообщение отредактировал(а) okaton - 17.10.2008, 20:38
PM MAIL   Вверх
MasterOfCode
Дата 17.10.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Возможно DataGridView не знает как добавлять данные в list<YourClass>. Почитай по этому поводу. Кстати, я же тебе давал ссылку как создать DataTable из коллекции можешь таким способом решить эту проблемму...


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 17.10.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(MasterOfCode @ 17.10.2008,  22:07)
Возможно DataGridView не знает как добавлять данные в list<YourClass>. Почитай по этому поводу. Кстати, я же тебе давал ссылку как создать DataTable из коллекции можешь таким способом решить эту проблемму...

ссылка не рабочая, а до dataTable я еще не добрался, а как таким способом я могу решить проблему? Я не могу создать новые строки, которые буду заноситься в dataTable

Это сообщение отредактировал(а) okaton - 17.10.2008, 21:32
PM MAIL   Вверх
MasterOfCode
Дата 17.10.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Цитата(okaton @  18.10.2008,  00:15 Найти цитируемый пост)
ссылка не рабочая

Исправил.
Цитата(okaton @  18.10.2008,  00:15 Найти цитируемый пост)
 а до dataTable я еще не добрался, а как таким способом я могу решить проблему

Тем что в DataSource будете передовать не List а таблицу дата сета, они то (DataTable's) хорошо работают с DataGridView


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 18.10.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Путь ошибочный, надо использовать dataTable
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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