更改值时显示数据网格的第一行

时间:2018-10-03 15:41:48

标签: c# list sorting datagridview datatable

所以我得到了一些非常奇怪的行为。
我有通过数据库填充的书籍清单,它在数据表中。
我将datagridview数据源设置为该数据表。
现在,我要检查是否存在重复的书本,以计算存在多少同名书本,并将该书号写在第一本书的行中,然后隐藏其他书本。 datagridview行中的每本书都一样。

这很好,但最后,第一行数据网格“跳转”到屏幕并再次显示
这是代码
(注意:执行此代码时,并非所有书籍都是可见的,这就是为什么我要检查行可见的原因)

for (int m = 0; m < dataGridView.RowCount; m++)
        {
            if (dataGridView.Rows[m].Visible)
            {

                string name = dataGridView.Rows[m].Cells["j_name"].Value.ToString();


                int pom_count = 1;
                for (int j = m + 1; j < dataGridView.RowCount; j++)
                {
                    if (dataGridView.Rows[j].Visible)

                    {



                        string name2 = dataGridView.Rows[j].Cells["j_name"].Value.ToString();
                        //MessageBox.Show(name2);
                        if (name2 == name)
                        {
                            pom_count++;
                            dataGridView.Rows[j].Visible = false;

                        }

                    }
                }



                 dataGridView.Rows[m].Cells["repeat_number"].Value = pom_count;
            }



        }


那么有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我将DataTable作为datagridSource,当我将其删除并手动填充时,它可以工作。
有人知道为什么吗?