C # GridView строки добавлены в неправильном месте? - PullRequest
0 голосов
/ 31 октября 2018

Я хочу добавить строки в мой GridView во время работы функции.

Перед вызовом функции добавления строк всегда есть 1 строка «ДАННЫЕ» из предыдущей функции.

Чтобы добавить строки, которые я пытался использовать:

int n = grid.Rows.Count;    
grid.Rows.Add("Step" + n.ToString());

и я ожидаю получить строки с метками:

Data...    
Step1...
Step2...
Step3...
etc

вместо этого я получаю:

Step1...
Step2...
Step3...
etc
Data...

(строка DATA сдвинута в самый низ, все строки добавлены над ней) Где моя ошибка?

EDIT: Я попробовал:

int n = grid.Rows.Count;
DataGridViewRow row = new DataGridViewRow();         
grid.Rows.Insert(n, row);
grid.Rows[n].Cells[0].Value = "Step"+n.ToString();

но это глючит.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Используйте Insert для добавления записей и Count для последней позиции

Что-то вроде:

grid.Rows.Insert(grid.Rows.Count-1, row);
0 голосов
/ 01 ноября 2018

Вы можете создать DataTable и затем показать его в GridView! попробуйте это:

System.Data.DataTable table = new DataTable();
table.Columns.Add("col1", typeof(string));
table.Columns.Add("col2", typeof(string));
table.Columns.Add("col3", typeof(string));
...

это создает строки:

for (int i = 0; i < n - 1; i++)
        {
            DataRow dr = table.NewRow();
            if(i==0)
               {
                  dr[col1]="Data"
                  dr[col2]= ...
                  dr[col3]= ...
                  ...
               }
             if(i>0)
               {
                  // your code
               }
            table.Rows.Add(dr);
         }

чтобы добавить эту таблицу в GridView:

DataView dv1 = new DataView(table);
dataGridView1.DataSource = dv1;
...