Как найти строку в сетке данных и добавить ее к последнему ряду таблицы данных - PullRequest
4 голосов
/ 27 сентября 2010

У меня есть gridview, который будет иметь 2 строки с некоторыми данными следующим образомперейти к последнему ряду представления данных.Например, если я добавлю n значений, значения должны быть вставлены между этими двумя, а та строка, которая уже существует, должна быть перенесена в последнюю строку. Любая идея, пожалуйста

Ответы [ 4 ]

1 голос
/ 27 сентября 2010

Это было то, что я написал, но у меня не работает. Что мне нужно, если мой массив начинается с 5, я хотел бы удалить 2-ую строку, которая уже существовала в gridview, и хотел бы добавить ее после добавления конкретной строки

     if (line.StartsWith("5"))
                {
                    int oldRow = 1;
                    dataGridView1.Rows.Add(itemarray(dataGridView1.Rows[1]));

                    dataGridView1.Rows.RemoveAt(oldRow);

                    dataGridView1.Rows.Add("BatchHeader", line);

                    m_flag = true;
                    StringBuilder sb = new StringBuilder();
                    objfileentry.createFileEntry(Append.FileName, out sb);
                    if (m_flag)
                        dataGridView1.Rows.Add("FileControl", sb.ToString());
                    line = string.Empty;
                }

данная вами функция

private object[] itemarray(DataGridViewRow Row)
    {
        int a = Row.DataGridView.ColumnCount - 1;
        object[] mOut = new object[a + 1]; 

        for (int x = 0; x <= a; x++)
        {
            mOut[x] = Row.Cells[x].Value;
        }
        return mOut;

    }
1 голос
/ 27 сентября 2010

Я отредактировал это с проверенным кодом:

public Form1()
        {

            InitializeComponent();
            //This can be removed before utilizing
                 dgv.Rows.Add("1", "1", "1");
                 dgv.Rows.Add("1", "1", "1");
                 dgv.Rows.Add("bob", "bob", "bob");
                 dgv.Rows.Add("1", "1", "1");
                 dgv.Rows.Add("1", "1", "1");
                 dgv.Rows.Add("1", "1", "1");
            //This can be removed before utilizing


            int oldrow = 2;

            dgv.Rows.Add(itemArray(dgv.Rows[oldrow]));

            dgv.Rows.RemoveAt(oldrow);
            /*
             DataGridViewRow oldRow = dataGridView1.Rows.Add(itemarray(dataGridView1.Rows[1])); dataGridView1.Rows.Remove(oldRow)
             */

        }

        object[] itemArray(DataGridViewRow Row) 
        {
            int a = Row.DataGridView.ColumnCount - 1;
            object[] mOut = new object[a+1];

            for (int x = 0;x <= a ; x++)
            {
                mOut[x] = Row.Cells[x].Value;
            }
            return mOut;

        }

Я прошу прощения за все дополнительные испытания.

0 голосов
/ 06 октября 2010

Можно ли использовать ListView вместо сетки данных?

0 голосов
/ 06 октября 2010

Если вы связываете данные таким образом,

myGridView.DataSource = GetDataSource();

Вы не можете добавлять строки программно. Если нет, вы можете использовать:

DataGridViewRow newRow = new DataGridViewRow();
//set row data here
myGridView.Rows.Insert(newIndex, newRow); //use Insert instead of Add/AddCopy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...