Câu trả lời:
Bạn có thể làm:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
yourDataGridView.Rows.Add(row);
hoặc là:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);
Cách khác:
this.dataGridView1.Rows.Add("five", "six", "seven","eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");
Từ: http://msdn.microsoft.com/en-us/l Library / system.windows.forms.datagridview.rows.aspx
RowTemplate
của DataGridView
. Điều này trở thành một vấn đề khi bạn có các kiểu khác nhau trên các hàng khác nhau trong DataGridView
.
Như thế này:
var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....
Hãy nói rằng bạn có một datagridview không bị ràng buộc với một tập dữ liệu và bạn muốn lập trình các hàng mới theo chương trình ...
Đây là cách bạn làm điều đó.
// 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)
datagridview.Columns.Add("columnname")
, không cần DataTable và kết thúc bằng một nụ cười
Như thế này:
dataGridView1.Columns[0].Name = "column2";
dataGridView1.Columns[1].Name = "column6";
string[] row1 = new string[] { "column2 value", "column6 value" };
dataGridView1.Rows.Add(row1);
Hoặc bạn cần đặt ở đó các giá trị sử dụng riêng lẻ .Rows()
, như thế này:
dataGridView1.Rows[1].Cells[0].Value = "cell value";
dataGridView1.Rows[1].Cells[0].Value = "cell value"
;
Việc thêm một hàng mới trong DGV không có hàng nào với Add () sẽ làm tăng sự kiện SelectionChanged trước khi bạn có thể chèn bất kỳ dữ liệu nào (hoặc liên kết một đối tượng trong thuộc tính Tag).
Tạo một hàng nhân bản từ RowTemplate sẽ an toàn hơn 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);
Đây là cách tôi thêm một hàng nếu dgrview trống: (myDataGridView có hai cột trong ví dụ của tôi)
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);
row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";
myDataGridView.Rows.Add(row);
Theo tài liệu: "CreateCells () xóa các ô hiện có và đặt mẫu của chúng theo mẫu DataGridView được cung cấp".
đây là một cách khác để làm như vậy
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");
}
Nếu bạn cần thao tác bất cứ thứ gì ngoài chuỗi Giá trị di động, chẳng hạn như thêm Thẻ, hãy thử điều này:
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);
yourDGV.Rows.Add(column1,column2...columnx); //add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue; //edit the value
bạn cũng có thể tạo một hàng mới và sau đó thêm nó vào DataGridView như thế này:
DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);
Nếu bạn đang ràng buộc một danh sách
List<Student> student = new List<Student>();
dataGridView1.DataSource = student.ToList();
student .Add(new Student());
//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;
Nếu bạn đang ràng buộc DataTable
DataTable table = new DataTable();
DataRow newRow = table.NewRow();
// Add the row to the rows collection.
table.Rows.Add(newRow);
Một ví dụ về hàng sao chép từ dataGridView và thêm một hàng mới trong cùng 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;
//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;
Nếu bạn đã xác định được a DataSource
, Bạn có thể lấy các DataGridView
biểu tượng DataSource
và chuyển nó thành a Datatable
.
Sau đó thêm một DataRow
giá trị mới và đặt Giá trị Trường.
Thêm hàng mới vào DataTable
và Chấp nhận các thay đổi.
Trong C #, nó sẽ giống như thế này ..
DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();
drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";
dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();
string[] splited = t.Split('>');
int index = dgv_customers.Rows.Add(new DataGridViewRow());
dgv_customers.Rows[index].Cells["cust_id"].Value=splited.WhichIsType("id;");
Nhưng hãy lưu ý, WhichIsType
là phương pháp mở rộng tôi tạo ra.
datagridview1.DataSource = yourDataTable