C# 更改DevExpress gridview数据源
我将获取gridview的数据源,然后向其中添加一些列,并再次在该gridview中填充新的数据源 我使用以下代码:C# 更改DevExpress gridview数据源,c#,datagridview,devexpress,datasource,C#,Datagridview,Devexpress,Datasource,我将获取gridview的数据源,然后向其中添加一些列,并再次在该gridview中填充新的数据源 我使用以下代码: try { if (!dt.Columns.Contains("Message_ID")) { dt.Columns.Add("Message_ID", typeof(int)); dt.Columns.Add("Message_Status", typeof(String));
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);
}
}
试试看
{
如果(!dt.Columns.Contains(“Message_ID”))
{
添加(“消息_ID”,typeof(int));
添加(“消息状态”,类型(字符串));
dt.列。添加(“成本”,类型(长));
}
List phonelist=新列表();
foreach(数据行dr在dt.行中)
{
添加(dr[“phone”].ToString().TrimEnd());
}
结果=api.Send(Properties.Settings.Default.SMS_Number,phonelist,message,Kavenegar.SDK.Models.Enums.MessageType.AppMemory,DateTime.MinValue);
对于(int i=0;i
但是我有个问题,gridview没有用新的数据源刷新。我用一个全新的gridview进行了尝试,似乎我的数据源工作得很好,其中提供了新的列。但是如果我在gridview中有一个数据源,我就不能为它提供新的数据源,我不会得到任何错误或类似的东西。在设置gridControl的数据源后尝试调用该方法。这将迫使网格在您的视图中重新创建列,因此新数据将可见。谢谢我的fried,我会尝试一下,并让您知道结果。谢谢