在运行时启用datagrid动态数据

时间:2013-07-19 14:26:27

标签: asp.net entity-framework dynamic-data

我有一个使用动态数据的数据网格。我为包含数据网格的页面的page_init事件启用了“动态数据”。我希望能够在运行时设置动态数据的类型。我有要设置的类的名称,作为字符串。我无法弄清楚如何做到这一点。

我设置了这样的动态数据:

Dim myGrid As GridView = DirectCast(retrieveGrid.FindControl("gridResults"), GridView) 
myGrid.EnableDynamicData(GetType(*MyEntityNameAsAString*)  

显然这不起作用,因为我无法为我的实体名称提供字符串。如何将字符串转换为实体类型?我试过了:

Type.GetType(entityname)

Type.GetType(AssemblyName.entityname) 

似乎都不起作用。也就是说,我无法使用这两种语句获得类型。

1 个答案:

答案 0 :(得分:0)

好的,像这样解决了......我创建了一个从对象名称中获取实体对象的函数:

Public Function GetEntity(ByVal entityName As String) As Object
    'Get the assembly
    Dim assem As Assembly = Nothing
    assem = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory & "/bin/AsbestosEntities.dll")
    'Get all classes in the assembly
    Dim AllEntities As Type() = assem.GetTypes()
    Return AllEntities.FirstOrDefault(Function(e) e.FullName = entityName)
End Function

然后根据函数的结果设置网格启用动态数据:

Dim EntityType As Type = GetEntity(general_retrieve.gr_entity_set_name)
myGrid.EnableDynamicData(EntityType)