Domanda

L'unico metodo fornito dal framework DNN per ottenere un modulo tramite ID richiedeva anche un ID scheda. Cosa posso fare se non ho un ID scheda?

È stato utile?

Soluzione

Il metodo GetModule al di fuori della classe DotNetNuke.Entities.Modules.ModuleController accetterà un " null " valore per ID scheda se non si dispone di un ID scheda. Cioè, prova quanto segue:

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

Vedi anche il mio post sul blog su l'argomento .

Altri suggerimenti

Una cosa a cui prestare attenzione quando si passa un TabId null a GetModule è che se si dispone di un modulo installato su un numero di schede diverse, si otterrà il primo, quindi i valori per TabId, TabModuleId e ModuleOrder si baserà sulla prima istanza, che può essere o meno l'istanza desiderata.

HTH,

Don

Brian, ho appena dato un'occhiata al codice per GetModule (), e non c'è alcun codice VB specifico nel framework che controlla che il tabid sia nullo. La cosa interessante è che la procedura memorizzata che fa parte di SqlDataProvider seleziona le righe dalla vista Moduli che hanno un moduleid corrispondente, indipendentemente dal tabid ...

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)

Se lo capisco correttamente, questo restituirebbe tutte le righe in cui moduleid è quello che hai specificato, indipendentemente dal fatto che @tabid sia nullo o meno. Questo rende @TabId piuttosto inutile, non credi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top