【问题标题】:Default Uneditable Values in Datagridview When the User Edits a New Row to Add to a Database当用户编辑新行以添加到数据库时 Datagridview 中的默认不可编辑值
【发布时间】:2014-10-25 15:29:13
【问题描述】:

我想使用 datagridview 让用户编辑 MYSQL DB 中的某些列。我从一张空桌子开始。所以如果:

...
connection.Open();
mySqlDataAdapter = new MySqlDataAdapter("SELECT * FROM `expenses` ", connection);
connection.Close();
DataSet DS = new DataSet();
mySqlDataAdapter.Fill(DS);
dataGridView1.DataSource = DS.Tables[0];
...

给我一​​个datagridview,顶部有所有正确的col名称,一个空行,在这个空行的最左边有一个> *,如果我开始编辑这一行中的一个单元格,最左边现在变成一支铅笔图标和第二个新的“原型”行出现在下面,最左边只有一个 *。这没关系,我认为这是标准行为。

我的问题是如何始终在这些“空”和“原型”的一些列中显示和强制执行默认值(真的不知道描述这些行的正确术语)。我不知道如何以编程方式访问这些行/单元格。最重要的是,我希望用户在编辑新行时在某些单元格中拥有/查看不可编辑的值。

然后用户编辑我使其可编辑的列。并且,结果新行被添加到数据视图中。实际上将行添加到 DB 表是下一步,但我想知道这是否可以先完成。

【问题讨论】:

标签: c# datagridview


【解决方案1】:

使用DefaultValuesNeeded事件

private void dataGridView1_DefaultValuesNeeded(object sender,
    System.Windows.Forms.DataGridViewRowEventArgs e)
{
    e.Row.Cells["Region"].Value = "WA";
    e.Row.Cells["City"].Value = "Redmond";
    e.Row.Cells["PostalCode"].Value = "98052-6399";
    e.Row.Cells["Country"].Value = "USA";
    e.Row.Cells["CustomerID"].Value = NewCustomerId();
}

更多信息请阅读 http://msdn.microsoft.com/en-us/library/b22t666e%28v=vs.90%29.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多