在按钮单击时在有界 dataGridView 中添加新行
Posted
技术标签:
【中文标题】在按钮单击时在有界 dataGridView 中添加新行【英文标题】:Add a new row in bounded dataGridView on button click 【发布时间】:2017-04-01 07:19:28 【问题描述】:我有一个 datagridview 并使用 datatable 作为数据源来填充它。
我想在按钮单击时添加一个新行,使用方法首先取消绑定,然后在其中添加新行。如下:
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource= null;
dataGridView1.Rows.Add();
但不是在现有行下方添加新行,而是清除行中的现有数据。我认为将该行呈现为新行。
如何在现有行下方添加新行并确保其他行中的数据安全。
注意——datagridview 视图的列是自定义列。
【问题讨论】:
【参考方案1】:如果您需要保护现有行的安全,则必须保留数据源。请问可以试试下面的吗?
public partial class Form1 : Form
DataTable dt;
public Form1()
InitializeComponent();
InitDataGridView();
private void InitDataGridView()
dt = new DataTable();
dt.Columns.Add("A"); dt.Columns.Add("B");
var dr = dt.NewRow();
dr["A"] = "A-init"; dr["B"] = "B-init";
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;
private void button2_Click(object sender, EventArgs e)
var dr = dt.NewRow();
var counter = dt.Rows.Count;
dr["A"] = "A-" + counter; dr["B"] = "B-" + counter;
dt.Rows.Add(dr);
【讨论】:
感谢@husky,但它的工作原理与 DGV1.Rows.add();一世。 e 清除 DGV 中已存在的数据。 清除发生在 dataGridView1.DataSource= null;您需要保留数据源并向表中添加新行,以保持现有行的安全。如果您能解释一下为什么需要解除数据源的绑定,那就太好了。 我只想在每次单击按钮时添加新行,我搜索了很多,发现新行是由未绑定的 datagridview 添加的。我真的不知道这样做会删除现有数据。没有其他理由解除 DGV 绑定。 只在绑定表中添加新行,可以查看更新后的代码吗?以上是关于在按钮单击时在有界 dataGridView 中添加新行的主要内容,如果未能解决你的问题,请参考以下文章
用C#多条件查询,并把查询的条件显示在datagridview中
如何在 ios 中添加一组应在单击按钮时更改的图像? [关闭]
如何确保 MS Access 中的有界表单和子表单仅在单击按钮后提交到数据库?