0

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

我这样设置动态数据:

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

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

Type.GetType(entityname)

Type.GetType(AssemblyName.entityname) 

而且似乎都不起作用。也就是说,我无法使用这些语句中的任何一个来获取类型。

4

1 回答 1

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)
于 2013-07-19T15:36:51.830 回答