2

モジュールがコンテナを介してページに配置されたときに作成される「DnnModule」クラスを含む外側の div にカスタム クラスを追加する方法はありますか? 現在、特定の幅で左にフロートするコンテナーを作成する場合、javascript を使用して HTML に入り、フロート プロパティを DnnModule レベルの div に追加しない限り、そのレイアウトを利用する方法はありません。

たとえば、足場システム (ブートストラップ) を使用していて、サイズの異なる複数のコンテナー (span3、span6、span12) を追加したい場合、それらのコンテナーを含むコンテンツ ペインにモジュールを追加すると、レイアウトが無視されます。 DNN が各モジュールの周りに追加する外部 div。これは、CSS レイアウトの観点からすると非常に制限的であり、スキン開発者は、柔軟性を高めるために、複数のコンテナーを持つ 2 つのスキンではなく、個別にスタイル設定された多数のスキンを作成する必要があります。

4

4 に答える 4

2

C# バージョン:

<script runat="server">    
    protected void Page_PreRender(object sender, EventArgs e) {
        try {
            HtmlGenericControl cParent = (HtmlGenericControl) this.Parent;
            cParent.Attributes["class"] += " span6";
        } catch (Exception ex) { 
            // do nothing 
        }
    }
</script>
于 2012-06-21T21:09:21.713 に答える
2

DotNetNuke.com フォーラムで回答を見つけました。

<script runat="server">    
    Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
        Try
            Dim cParent As HtmlGenericControl = CType(Me.Parent, HtmlGenericControl)
            cParent.Attributes("class") = cParent.Attributes("class") + " span6"
        Catch ex As Exception
        End Try
    End Sub
</script>

これをコンテナの .ascx ファイルに追加すると、独自の特定のクラスをラッパー div に挿入できます。

ソース: http://www.dotnetnuke.com/Resources/Forums/forumid/109/threadid/458919/scope/posts.aspx

于 2012-06-21T21:05:04.820 に答える
1

DIVは常にDNNによって自動的に追加され、常にそのDNNModuleクラスを持っていると思います。また、スキンやコンテナーがそれを変更するための拡張ポイントはないと思います。

つまり、最善の策はjQuery(IIRCは現在のDNNイメージにベイクされています)を使用し、それをスキンの.ascxファイルで初期化することだと思います。

(テストされていない)のようなもの:

$(".DNNModule").addClass("MyMagicClass");
于 2012-06-20T22:18:35.730 に答える