Dans DotNetNuke, comment puis-je obtenir un objet ModuleInfo si je viens d'avoir un ModuleId (et non un TabId)

StackOverflow https://stackoverflow.com/questions/248067

Question

La seule méthode fournie par l'infrastructure DNN pour obtenir un module par ID nécessitait également un ID d'onglet. Que puis-je faire si je n'ai pas d'identifiant de tabulation?

Était-ce utile?

La solution

La méthode GetModule de la classe DotNetNuke.Entities.Modules.ModuleController acceptera un " null " valeur pour l'ID de l'onglet si vous n'avez pas d'ID de l'onglet. C’est-à-dire, essayez ce qui suit:

new ModuleController().GetModule(moduleId, DotNetNuke.Common.Utilities.Null.NullInteger)

Voir aussi mon billet de blog sur le sujet .

Autres conseils

Une chose à surveiller lorsque vous passez un TabId null à GetModule est que si vous avez un module installé sur plusieurs onglets différents, vous récupérerez le premier, aussi les valeurs de TabId, TabModuleId et ModuleOrder sera basé sur cette première instance, qui peut être ou non l'instance que vous vouliez.

HTH,

Don

Brian, je viens d’examiner le code de GetModule () et il n’existe pas de code VB spécifique dans la structure qui vérifie que la tabid est null. Ce qui est intéressant, c’est que la procédure stockée qui fait partie de SqlDataProvider sélectionne les lignes de la vue Modules qui ont un id module correspondant, quel que soit le tabid utilisé ...

ALTER PROCEDURE [dbo].[dnn_GetModule]

    @ModuleId int,
    @TabId    int

AS
SELECT  * 
FROM dbo.dnn_vw_Modules
WHERE   ModuleId = @ModuleId
AND     (TabId = @TabId or @TabId is null)

Si je comprends bien, cela renverrait toutes les lignes où moduleid est celui que vous avez spécifié, peu importe que @tabid soit null ou non. Cela rend le @TabId plutôt inutile, vous ne pensez pas?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top