我将获取gridview的数据源,然后向其添加一些列,并再次在该gridview中填充新的数据源。
我使用此代码:
try
{
if (!dt.Columns.Contains("Message_ID"))
{
dt.Columns.Add("Message_ID", typeof(int));
dt.Columns.Add("Message_Status", typeof(String));
dt.Columns.Add("cost", typeof(long));
}
List<string> phonelist = new List<string>();
foreach (DataRow dr in dt.Rows)
{
phonelist.Add(dr["phone"].ToString().TrimEnd());
}
results = api.Send(Properties.Settings.Default.SMS_Number, phonelist, message, Kavenegar.SDK.Models.Enums.MessageType.AppMemory, DateTime.MinValue);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["Message_ID"] = 123;//results[i].ID;
dt.Rows[i]["Message_Status"] = "fgh";//results[i].StatusText;
dt.Rows[i]["cost"] = 123;//results[i].Cost;
}
gridecontrol.DataSource = null;
gridecontrol.DataSource = dt;
gridecontrol.RefreshDataSource();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message, "Error message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
但是我有一个问题,gridview没有用新的数据源刷新。我尝试了一个新的gridview,似乎我的数据源工作正常,新的列供应在其中。但是如果我在gridview中有一个数据源,我就无法为它提供新的数据源,我不会得到任何错误或类似的东西。
答案 0 :(得分:0)
在设置gridControl的DataSource后尝试调用gridView.PopulateColumns()方法。这将强制网格在视图中重新创建列,从而可以看到新数据。