更改DevExpress gridview数据源

时间:2014-07-20 06:30:15

标签: 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));
            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中有一个数据源,我就无法为它提供新的数据源,我不会得到任何错误或类似的东西。

1 个答案:

答案 0 :(得分:0)

在设置gridControl的DataSource后尝试调用gridView.PopulateColumns()方法。这将强制网格在视图中重新创建列,从而可以看到新数据。