Telerik gridview:数据库更改后如何刷新网格视图

Posted

技术标签:

【中文标题】Telerik gridview:数据库更改后如何刷新网格视图【英文标题】:Telerik gridview : How to refresh grid view after Database change 【发布时间】:2013-05-12 11:54:14 【问题描述】:

我在 C# winform 应用程序中使用radgridview 来显示来自数据库的数据。我还通过 ADO.Net 更改数据库。问题是在我更改数据库后,例如通过删除一行或添加一个新行,更改不会出现在 gridview 中。 我还想提一下,我已经通过智能标签将数据库绑定到 gridview,当我尝试创建一个新数据集并将其分配给 radgridview1.datasource 时,我遇到了很多错误。 关于如何强制radgridview 重新加载datasource 的任何建议?

【问题讨论】:

我认为您在代码中找不到任何特别之处,用户按下删除按钮后,我通过 ADO 删除了该行。就是这样。 【参考方案1】:

数据集有一个 clear 函数,可以在新数据传递到数据集之前调用它:

Resultset.Clear();
DataAdapter.fill(Resultset);
Radgridview.datasource=Resultset;

【讨论】:

【参考方案2】:

这个解决方案类似于 Alexander 的:

List<ClassOfDataRow> t = radGridView.ItemsSource as List<ClassOfDataRow>;
radGridView.ItemsSource = null;
radGridView.ItemsSource = t;

ClassOfDataRow 是用于在网格中存储一行数据的类,radGridView 是您的 RadGridView 的名称。

【讨论】:

【参考方案3】:

当数据源发生变化时,刷新数据网格使用以下代码:

this.radGridViewName.MasterTemplate.Refresh(null); 

这条线解决了我的问题:-)

【讨论】:

也可以试试this.radGridViewName.TableElement.UpdateView();【参考方案4】:

这里有一个tutorial,一步一步解释如何绑定网格。绑定后,引入到底层源的更改将自动反映,并且在您更新 TableAdapter 后,在 RadGridView 中的更改将在 DataTable 中更新。

【讨论】:

【参考方案5】:

嗯,我自己找到了答案。虽然它只适用于dataGridView,不适用于dataListView。 删除记录并提交对数据库的更改:

radGridView1.CurrentRow.Delete();
this.yourTableAdapter.Update(yourDataSet);

另一方面,如果您添加了新记录并且您想重新整理列表:

this.yourTableAdapter.Fill(yourDataSet.yourTabel);

如果你知道如何对 dataListView 做同样的事情,我会很高兴听到的。

【讨论】:

更新 TableAdapter 正是我上面的建议 :)。祝你好运。【参考方案6】:

您可以使用简单的灵魂来刷新网格中的数据:

MyGrid.DataSource = null;
MyGrid.DataSource = updatedData;

【讨论】:

再次从数据库中加载它。 如果我创建一个新数据集并通过adapter.Fill(ds) 填充它,我会在itemDatabound 事件处理程序中得到空指针异常。 正如我之前所说,我没有以编程方式连接到 db,我使用了智能标签属性。

以上是关于Telerik gridview:数据库更改后如何刷新网格视图的主要内容,如果未能解决你的问题,请参考以下文章

如何委托telerik网格视图常用方法从每个子页面的父页面调用?

怎样用js给Html.Telerik.Grid重新绑定数据源

如何在客户端为 Telerik 组合框设置路由值

GridView Webform c#中的行颜色更改

更改 GridViewComboboxColumn 中的选定项目(Telerik,winforms)

在gridview页面更改后Jquery colorbox不起作用