DotNetNukeで、(TabIdではなく)ModuleIdがある場合にModuleInfoオブジェクトを取得するにはどうすればよいですか?

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

質問

IDでモジュールを取得するためにDNNフレームワークが提供する唯一のメソッドには、タブIDも必要でした。タブIDを持っていない場合はどうすればよいですか?

役に立ちましたか?

解決

DotNetNuke.Entities.Modules.ModuleControllerクラスのGetModuleメソッドは、「null」を受け入れます。タブIDがない場合は、タブIDの値。つまり、次のことを試してください。

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

私のブログ投稿も参照してください。件名

他のヒント

ヌルのTabIdをGetModuleに渡すときの注意点の1つは、多数の異なるタブにインストールされているモジュールがある場合、最初のタブを取得するため、TabId、TabModuleIdおよびModuleOrderは、最初のインスタンスに基づいており、必要なインスタンスである場合とそうでない場合があります。

HTH、

しない

ブライアン、GetModule()のコードを調べたところ、フレームワークにtabidがnullであるかどうかをチェックする特定のVBコードはありません。面白いのは、SqlDataProviderの一部であるストアドプロシージャが、tabidが何であっても、一致するmoduleidを持つ行をModulesビューから選択することです...

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)

これを正しく理解すると、@ tabidがnullであるかどうかに関係なく、指定したmoduleidであるすべての行が返されます。 @TabIdはかなり無意味になりますよね

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top