7

DNN 5 用のカスタム モジュールを作成していますが、モジュール内のすべてのコントロールに「管理」リンクが必要です。PortalModuleBase から継承する新しい UserControl (「ManagerLink」) を作成し、リンクをそのコントロールに配置し、すべてのメイン コントロールにそのコントロールをドロップしました。

問題は、"ManagerLink" ネストされたコントロールで ModuleId と TabId が常に -1 になることです。PortalId は正常に機能し、PortalSettings.ActiveTab.TabID を実行して TabId を取得できます。

  1. PortalModuleBase から継承しているにもかかわらず、「ManagerLink」コントロールから ModuleId と TabId を取得できないのはなぜですか?

  2. ModuleId を取得する別の方法はありますか (PortalSettings.ActiveTab.TabID と同等)

更新 2014:

元の回答よりもはるかに優れた別の回答を見ました(そしてそれを受け入れました)。

DNN 6 以前を使用している場合はModuleBasePortalModuleBase

4

2 に答える 2

8

DNN フォーラムの William Severanceがこれに答えてくれました。ここにも答えを投稿します。

子コントロールは PortalModuleBase から継承するため、親コントロールの Page_Load ハンドラーで次のようにします。

注: ManagerLink は、子コントロールへの参照であると見なされます

VB.NET:

With ManagerLink
    .ModuleConfiguration = Me.ModuleConfiguration
    .LocalResourceFile = Me.LocalResourceFile
End With
C#:
protected void Page_Load(System.Object sender, System.EventArgs e)
{
    ManagerLink.ModuleConfiguration = this.ModuleConfiguration;
    ManagerLink.LocalResourceFile = this.LocalResourceFile
}

上記により、子コントロールは親の ModuleConfiguration (ModuleId を含む) と LocalResourceFile を任意のローカリゼーションに使用できます。

于 2009-03-16T09:58:26.903 に答える