我有一个DataTable,我用它绑定到我的DevExpress GridView。
我的DataTable是动态的 - 有时它甚至可以带来4列甚至20。问题是当我第一次使用dataTable设置我的GridView时,例如,当时有20列,它将正确显示,下一步如果我的DataTable只有4列,那么我的GirdView仍会显示所有20列,其中只包含我的DataTable当时所拥有的4列中的值。
如何解决此问题?
附件是ScreenShot。
这与清除某个内存实例/处理对象有关吗?如果是这样,请帮助使用DevExpress GridView的API。
更新
此代码调用设置数据源
bindingSource1.DataSource = dtBindToGridView; // MyDataTable
gcAnalysisTaskPermission.DataSource = bindingSource1; //My GridView
bindingSource1.ResetBindings(true); // Reset the BindingSource
谢谢,
Mangesh
答案 0 :(得分:3)
首先尝试重置数据源,如下所示:
grid.DataSource = null;
grid.DataSource = GetData();
如果你有约束力,这不起作用
答案 1 :(得分:2)
如果您使用BindingSource
,请尝试设置ResetBinding()
public void SetData()
{
//setting the datasource of your binding source
myBindingSource.DataSource = GetMyDataTable();
//after the datasource has been set, call this.
//use true, because the metadata has changed
myBindingSource.ResetBindings(true);
}
<强>更新强>
根据DevExpress,您可以尝试拨打PopulateColumns
public void SetData()
{
//setting the datasource of your binding source
myBindingSource.DataSource = GetMyDataTable();
gridView1.PopulateColumns();
}