2017-08-17 59 views

回答

0

我知道这个问题很老,但它可能会帮助有人想要这样做。

创建来自动态对象的DataTable和数据表结合的GridView

public static DataTable GetDataTableFromDynamicObject (List<dynamic> listData) 
{ 
    DataTable table = new DataTable (); 
    if (listData.Count > 0) 
    { 
     var firstRow = (IEnumerable<KeyValuePair<string, JToken>>) (JObject) listData.First (); 

     foreach (KeyValuePair<string, JToken> property in firstRow.OrderBy (x => x.Key)) 
      table.Columns.Add (new DataColumn (property.Key)); 

     foreach (var data in listData) 
     { 
      DataRow row = table.NewRow (); 
      var record = (IEnumerable<KeyValuePair<string, JToken>>) (JObject) data; 

      foreach (KeyValuePair<string, JToken> kvp in record) 
      { 
       row [ kvp.Key ] = kvp.Value; 
      } 
      table.Rows.Add (row); 
     } 
    } 
    return table; 
} 
相关问题