Вы можете получить модули на вкладке с помощью ModuleController.GetTabModules ()
Imports DotNetNuke.Entities.Modules
...
Dim objModules As New ModuleController
Dim tabModules As Dictionary(Of Integer, ModuleInfo) = objModules.GetTabModules(TabId)
Ключи словаря - это ModuleID, а значения - объекты ModuleInfo.Вы также можете вызвать соответствующую хранимую процедуру GetTabModules
для извлечения данных модуля.
Теперь ModuleInfo
имеет свойство PaneName
, которое можно использовать для группировки результатов, скажем, в другом словаре, и полученияотсюда:
Dim result As New Dictionary(Of String, Integer)
For Each tabModule In tabModules.Values
If Not String.IsNullOrEmpty(tabModule.PaneName) Then
result(tabModule.PaneName) += 1
End If
Next
Возможно, вы также хотите отфильтровать удаленные модули:
For Each tabModule In tabModules.Values _
.Where(Function(x) Not String.IsNullOrEmpty(x.PaneName)) _
.Where(Function(x) Not x.IsDeleted)
result(tabModule.PaneName) += 1
Next
Список отдельных имен PaneName для вкладки можно получить с помощью хранимой процедуры GetTabPanes
.Соответствующий метод в кодовой базе 4.9.5 реализован в DataProvider:
Dim dr As IDataReader = DotNetNuke.Data.DataProvider.Instance().GetTabPanes(TabId)