Jak programowo dodać nowy wiersz do datagridview


jeśli dodasz linię do
DataTable
DataRow row = datatable1.NewRow();
row["column2"]="column2";
row["column6"]="column6";
datatable1.Rows.Add(row);

A co z
DataGridView
??
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czy możesz to zrobić:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
yourDataGridView.Rows.Add(row);

lub:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);

Inny sposób:
this.dataGridView1.Rows.Add("five", "six", "seven","eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");

Od:

http://msdn.microsoft.com/en-u ... .aspx
http://msdn.microsoft.com/en-u ... .aspx
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Podobne do tego:
var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Załóżmy, że masz datagridview, który nie jest powiązany z zestawem danych i chcesz programowo zapełniać nowe wiersze ...
Tak to się robi.
// Create a new row first as it will include the columns you've created at design-time.int rowId = dataGridView1.Rows.Add();// Grab the new row!
DataGridViewRow row = dataGridView1.Rows[rowId];// Add the data
row.Cells["Column1"].Value = "Value1";
row.Cells["Column2"].Value = "Value2";// And that's it! Quick and painless... :o)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Podobne do tego:
dataGridView1.Columns[0].Name = "column2";
dataGridView1.Columns[1].Name = "column6"; string[] row1 = new string[] { "column2 value", "column6 value" };
dataGridView1.Rows.Add(row1);

Lub musisz ustawić poszczególne wartości za pomocą obiektu
.Rows ()
w następujący sposób:
dataGridView1.Rows[1].Cells[0].Value = "cell value";
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dodanie nowej linii do DGV bez linii z

Add()

przyczyny
zdarzenie SelectionChanged przed wstawieniem jakichkolwiek danych (lub związaniem obiektu we właściwości znacznika).
Utwórz klon ciągu z

RowTemplate

bezpieczniejsze IMHO:
//assuming that you created columns (via code or designer) in myDGV
DataGridViewRow row = (DataGridViewRow) myDGV.RowTemplate.Clone();
row.CreateCells(myDGV, "cell1", "cell2", "cell3");myDGV.Rows.Add(row);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W ten sposób dodaję wiersz, jeśli dgrview jest pusty: (myDataGridView ma dwie kolumny w moim przykładzie)
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";myDataGridView.Rows.Add(row);

Zgodnie z dokumentacją: „CreateCells () czyści istniejące komórki i ustawia ich szablon tak, aby pasował do podanego szablonu DataGridView”.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli siatka jest powiązana z DataSet/table, lepiej jest użyć BindingSource, takiego jak
var bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
grid.DataSource = bindingSource;//Add data to dataTable and then callbindingSource.ResetBindings(false)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

oto inny sposób, aby to zrobić
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.ColumnCount = 3; dataGridView1.Columns[0].Name = "Name";
dataGridView1.Columns[1].Name = "Age";
dataGridView1.Columns[2].Name = "City"; dataGridView1.Rows.Add("kathir", "25", "salem");
dataGridView1.Rows.Add("vino", "24", "attur");
dataGridView1.Rows.Add("maruthi", "26", "dharmapuri");
dataGridView1.Rows.Add("arun", "27", "chennai");
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli potrzebujesz manipulować czymkolwiek innym niż ciągiem wartości komórki, na przykład dodać tag, spróbuj tego:
DataGridViewRow newRow = (DataGridViewRow)mappingDataGridView.RowTemplate.Clone();
newRow.CreateCells(mappingDataGridView);newRow.Cells[0].Value = mapping.Key;
newRow.Cells[1].Value = ((BusinessObject)mapping.Value).Name;
newRow.Cells[1].Tag = mapping.Value;mappingDataGridView.Rows.Add(newRow);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

yourDGV.Rows.Add(column1,column2...columnx);//add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue;//edit the value

możesz również utworzyć nowy wiersz, a następnie dodać go do DataGridView w następujący sposób:
DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Jeśli wiążesz listę

List<Student> student = new List<Student>();dataGridView1.DataSource = student.ToList();
student .Add(new Student());//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;


Jeśli wiążesz DataTable

DataTable table = new DataTable(); DataRow newRow = table.NewRow();// Add the row to the rows collection.
table.Rows.Add(newRow);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Przykład kopiowania wiersza z dataGridView i dodawania nowego wiersza w tym samym dataGridView:
DataTable Dt = new DataTable();
Dt.Columns.Add("Column1");
Dt.Columns.Add("Column2");DataRow dr = Dt.NewRow();
DataGridViewRow dgvR = (DataGridViewRow)dataGridView1.CurrentRow;
dr[0] = dgvR.Cells[0].Value;
dr[1] = dgvR.Cells[1].Value; Dt.Rows.Add(dR);
dataGridView1.DataSource = Dt;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Rozważ aplikację systemu Windows i użyj zdarzenia Button Click, aby umieścić w niej ten kod.
dataGridView1.Rows
.Add(new object[] { textBox1.Text, textBox2.Text, textBox3.Text });
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

//Add a list of BBDD
var item = myEntities.getList().ToList();
//Insert a new object of type in a position of the list
item.Insert(0,(new Model.getList_Result { id = 0, name = "Coca Cola" }));//List assigned to DataGridView
dgList.DataSource = item;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli zdefiniowałeś już
DataSource
, możesz pobrać
DataSource
DataGridView
s
DataSource
i przesłać go jako A
Datatable
.
Następnie dodaj nowy
DataRow
i ustaw wartości pól.
Dodaj nowy wiersz do
DataTable
i zaakceptuj zmiany.
W C # byłoby to coś takiego ...
DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

//header
dataGridView1.RowCount = 50;
dataGridView1.Rows[0].HeaderCell.Value = "Product_ID0";
//add row by cell
dataGridView1.Rows[1].Cells[0].Value = "cell value";
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

string[] splited = t.Split('>');
int index = dgv_customers.Rows.Add(new DataGridViewRow());
dgv_customers.Rows[index].Cells["cust_id"].Value=splited.WhichIsType("id;");

Należy jednak pamiętać, że
WhichIsType
to utworzona przeze mnie metoda rozszerzenia.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się