我有一个使用动态数据的数据网格。我为包含数据网格的页面的page_init事件启用了“动态数据”。我希望能够在运行时设置动态数据的类型。我有要设置的类的名称,作为字符串。我无法弄清楚如何做到这一点。
我设置了这样的动态数据:
Dim myGrid As GridView = DirectCast(retrieveGrid.FindControl("gridResults"), GridView)
myGrid.EnableDynamicData(GetType(*MyEntityNameAsAString*)
显然这不起作用,因为我无法为我的实体名称提供字符串。如何将字符串转换为实体类型?我试过了:
Type.GetType(entityname)
和
Type.GetType(AssemblyName.entityname)
似乎都不起作用。也就是说,我无法使用这两种语句获得类型。
答案 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)