0

タグをラップして CSS を取得できるように、Sitefinity でカスタム コンテンツ ブロックを作成したいと考えています。

カスタム ウィジェットを作成しましたが、それをコンテンツ ブロックにする方法がわかりません。これに関するドキュメントは見つかりませんが、よくあることだと思います。基本的に、これを行うドラッグアウトコンテンツブロックが必要です:

<aside>
[code for content block]
</aside> 

.net で [コンテンツ ブロック] コードを生成する方法がわかりません。私は .net 開発が初めてです。VB を使用していますが、C# を使用できます。

どんな助けでも大歓迎です。ありがとうございました。

マリア

4

2 に答える 2

1

コンテンツ ブロックなどの他のコントロールと組み合わせて使用​​できるカスタム レイアウト コントロールを作成できます。

レイアウト コントロールを作成するには、Visual Studio でプロジェクトを開き、WebApp プロジェクトに新しいコントロール (.ascx) ファイルを作成します。私は通常、私が作成した ~/LayoutControls フォルダーに入れます。その制御ファイルに、次のように入力します。

<div runat="server" class="sf_cols">
    <aside>
        <div id="Div1" runat="server" class="sf_colsIn"></div>
    </aside>
</div>

aside必要なマークアップであるタグの他に、いくつかの詳細を持つ 2 つの div があることに気付くでしょう。これらは、Sitefinity がこれをコントロールとして扱い、コンテンツを動的に挿入できるようにするために必要です。

クラスを含む divsf_colsはすべてのコントロールに共通であり、クラスsf_colsIn(id="Div1") を含む div は、レイアウト コントロールにドロップするコントロールが移動する場所です。したがって、外側のラッパー div、マークアップ、および内側の div があります。これは、コンテンツが移動する内部 div です。

ファイルを保存し、プロジェクトをコンパイルしてから、コントロールを Sitefinity に登録します。

これを行うには、バックエンドにログインして、[管理] | [管理] に移動します。設定 | 詳細設定 | ツールボックス | ツールボックス | ページレイアウト | セクション。通常、これらのプロパティを持つ新しいセクションを追加します。

name=Custom,Title=Custom,Description=カスタム レイアウト,Global resourceClassId=PageResources

次に、新しいセクションを選択し、[ツール]、[新規作成] の順に選択します。名前、タイトル、説明は、あなたがコントロールできるものです。Control CLR Type は である必要がTelerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinityあり、Layout Template は ascx ファイルへのパスである必要があります~/LayoutControls/AsideBlock.ascx。他のプロパティにはデフォルト値を設定できます (ほとんどは空白です)。次に、保存します。

ページを編集しているときに、右側の列にある [レイアウト] ボタンをクリックすると、コントロールを含む [カスタム] セクションが表示されます。それをページにドラッグし、「コンテンツ」編集に戻ります (右側の列のボタンを使用)。レイアウト コントロールが表示され、その上にコンテンツ ブロックがドロップされます。

通常どおりコンテンツを追加します。ページがレンダリングされると、コンテンツは aside タグでラップされます。

于 2013-08-23T12:40:28.723 に答える
0

これを行う最も簡単な方法は、コンテンツ ブロックの外部テンプレートを使用することです。必要なテンプレートは ContentBlock.ascx であり、SDK に含まれています。

このファイルをプロジェクトにコピーしてから、(コントロールの実際のコンテンツをレンダリングする) contentHtmlリテラル コントロールの周りにラッピング タグを追加します。

次に、このテンプレートを使用するコンテンツ ブロック ウィジェットの詳細設定を開き、LayoutTemplatePath を指定します。「~/SFRes/Telerik.Sitefinity.Resources.Templates.Backend.GenericContent.ContentBlock.ascx」のようなデフォルト値が必要です。

これを作成したテンプレートへの仮想パスに変更し、ページを保存して公開します。

コンテンツ ブロックは、既定のテンプレートではなく、追加したマークアップを使用してテンプレートでレンダリングされます。

これがお役に立てば幸いです。

このプロセスを説明する詳細なブログ投稿を作成し、完了したらここにリンクします。インスピレーションをありがとう!

于 2012-10-31T20:30:02.623 に答える