我有一个gridview,它有2行,有一些数据如下
101 111111111 1111111111009270754A094101// My first row data
9000002 1000000020222222236000000000000000000000012000000000000000000000000000000000000000//My 2nd row data
我将添加一些值,使其应插入这两行之间,并且已存在的第二行应移动到datagrid视图的最后一行。就像那样,如果我添加了n个值,那么应该在这些值之间插入值,并且那个已经存在的行应该移到最后一行任何想法请
答案 0 :(得分:1)
我已使用经过测试的代码对其进行了编辑:
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;
}
我为所有额外的测试道歉。
答案 1 :(得分:1)
这是我写的,但对我不起作用。我需要的是,如果我的数组以5开头,我想删除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;
}
答案 2 :(得分:0)
如果您以这种方式绑定数据,
myGridView.DataSource = GetDataSource();
您无法以编程方式添加行。如果没有,您可以使用:
DataGridViewRow newRow = new DataGridViewRow();
//set row data here
myGridView.Rows.Insert(newIndex, newRow); //use Insert instead of Add/AddCopy
答案 3 :(得分:0)
您可以使用ListView而不是datagrid吗?