3

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

4

3 に答える 3

6

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

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

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

于 2008-10-29T19:18:42.013 に答える
3

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

HTH、

ドン

于 2008-11-13T05:13:11.413 に答える
-2

ブライアン、私は GetModule() のコードを見てみましたが、タブ ID が null であることをチェックする特定の VB コードがフレームワークにありません。興味深いのは、SqlDataProvider の一部であるストアド プロシージャが、タブ ID に関係なく、一致するモジュール ID を持つモジュール ビューから行を選択することです...

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 をかなり無意味にしますね。

于 2008-11-01T19:39:51.637 に答える