private void loadMetaFields(int metaTableId) { //The relationship handling should maybe be moved to MetadataNewDa instead, returning the complete Dataset MetadataNewDa MNDa = new MetadataNewDa(); DataSet ds = new DataSet(); DataTable ParentFields = new DataTable(); ParentFields = MNDa.GetMetaFieldsForAMetaTable(ParentFields, metaTableId); if (ParentFields.Rows.Count < 1) { lblEtFields.Visible = true; lblEtFields.Text = "None"; dgEtFields.Visible = false; } else { ParentFields.TableName = "ParentTable"; DataTable ChildAttributes = new DataTable(); ChildAttributes = MNDa.GetAttributeValuesForAMetaTable(ChildAttributes, metaTableId); ChildAttributes.TableName = "ChildTable"; ds.Tables.Add(ParentFields); ds.Tables.Add(ChildAttributes); DataRelation dr = new DataRelation("ParentTable_ChildTable", ParentFields.Columns["FieldId"], ChildAttributes.Columns["FieldId"], false); dr.Nested = true; ds.Relations.Add(dr); lblEtFields.Visible = false; dgEtFields.DataSource = ds; dgEtFields.DataBind(); dgEtFields.Visible = true; } }