将客户端已输入的新行添加到 RadgirdView 上的数据源
本文关键字:RadgirdView 数据源 添加 新行 客户端 输入 | 更新日期: 2023-09-27 18:34:22
我是将 telerik 工具用于 winforms 的新手,我想知道是否有人可以帮助我找到最佳方法,以便客户端可以在 radgrid 上添加新行并让它在数据源上显示此更改。
到目前为止,我已经设置了radgrid,以便客户端可以添加新行。我只需要将其绑定到数据源。
private void radGridView1_Click(object sender, EventArgs e)
{
this.radGridView1.AllowEditRow = false;
this.radGridView1.AllowAddNewRow = true;
this.radGridView1.AllowDeleteRow = false;
this.radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Top;
this.radGridView1.MasterTemplate.AddNewBoundRowBeforeEdit = true;
radGridView1.EnableAlternatingRowColor = true;
}
看看RadGridView
的UserAddedRow
事件。这是在用户向网格添加新行后触发的。然后,您可以将新条目添加到源列表或数据表中。
List<Foo> _lSource = new List<Foo>();
DataTable _tSource = new DataTable();
private void radGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
{
Foo foo = new Foo();
foo.Col1 = e.Row.Cells["col1"].Value.ToString();
foo.Col2 = e.Row.Cells["col2"].Value.ToString();
_lSource.Add(foo);
_tSource.Rows.Add(e.Row.Cells["col1"].Value.ToString(), e.Row.Cells["col2"].Value.ToString());
}
我在同一代码片段中添加了这两种可能性。只需选择一个(列表或表格)。我刚刚创建了一个随机类来向您展示一个例子。您可以创建自己的类并根据需要命名属性。请注意,该列(在我的示例中为 col1
和 col2
)必须存在,否则您将获得 NullReferenceException。如果您使用的是DataTable
则必须在添加行之前添加一次列。
_tSource.Columns.Add("col1");
_tSource.Columns.Add("col2");
我还建议不要更新RadGridView
单击事件的RadGridView
属性。因为设置一次这些属性就足够了。现在,您可以在每次单击网格视图时设置它们。将它们移动到窗体的 Load
事件,或直接在设计器属性中设置它。
private void Form_Load(object sender, EventArgs e)
{
radGridView1.AllowEditRow = false;
radGridView1.AllowAddNewRow = true;
radGridView1.AllowDeleteRow = false;
radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Top;
radGridView1.MasterTemplate.AddNewBoundRowBeforeEdit = true;
radGridView1.EnableAlternatingRowColor = true;
}
RadGridView支持到各种数据源的数据绑定,CRUD操作将自动为您处理。在这里,您可以找到有关支持的数据源的信息:用于WinForms文档的Telerik UI
这是如何绑定到DataTable
,其中所有 CRUD 操作都是开箱即用
RadGridView radGridView1 = new RadGridView();
this.Controls.Add(radGridView1);
radGridView1.Dock = DockStyle.Fill;
DataTable table = new DataTable();
table.Columns.Add("col1");
table.Columns.Add("col2");
table.Rows.Add("value1", "value1");
table.Rows.Add("value2", "value2");
radGridView1.DataSource = table;
这里也是一个设计时教程。