2016-09-27 18 views
1

カスタムHTMLコントロールを作成したいと思います。 ASPXでユーザーHTMLコントロールの作成

<custom:Message runat="server" ID="" 
       Type="" // { "Tip", "Note", "Important", "Warning" , "Caution" } 
       Label="" 
       Text="" 
       Visible="" /> 

HTMLが生成される:

<div class="fixedClass customClass"> 
<span class="label">caution</span><hr> 
<blockquote> 
    <p> 
     <strong>Important:</strong> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ipsum lectus, cursus id rutrum vel 
     , feugiat eget leo. <strong>Cras suscipit urna vel</strong> nibh placerat vestibulum. 
    </p> 
</blockquote> 

属性:
タイプ主DIVのcustomClassするためのものです。
ラベルは<span class="label">のテキストです。
テキストは<p>ブロック内のテキストです。

答えて

1

これにASP.NETユーザーコントロールを使用できます。これはASP.NETフォームのよく使用される機能です。私はあなたの研究が既にそれを起こさなかったのに驚いています:-)

とにかく、Visual Studioで "新しい項目の追加"に行くと、新しいユーザーコントロールを作成できます。テンプレートのリストから「Web User Control」を選択します。これにより、拡張子が.ascxのファイルが作成されます。これはユーザーコントロールです。その中に、必要なHTMLマークアップ、JavaScript、その他の.NETコントロール(さらには他のユーザーコントロール)を追加することができます。また、完全なページと同じ方法でイベントなどに応答できるコードビハインドも備えています。

これがプロジェクトに作成されて組み込まれると、メインのaspxページで使用できます。これは2つの部分に分かれています。まず、コントロールを登録するためのディレクティブを追加し、ビルトインコントロールと同じ方法でコントロールを使用するタグを追加できます。

<%@ Register TagPrefix="uc" TagName="myControl" Src="~/Controls/myControl.ascx" %> 
... 
<uc:myControl id="ctrl1" runat="server"/> 

あなたがコントロール(例えば、「ラベル」と「テキスト」あなたが述べたように、コントロールのコードビハインドでパブリックプロパティを定義するには属性を持つようにしたい場合:次に明らかに

public string Label { get; set; } 
public string Text { get; set; } 

どこかにあなたがUIまたは何を移入するために、これらの値を使用することができます

をマークアップでそれらを使用するには背後にあるコードで:。

<uc:myControl id="ctrl1" runat="server" Label="TestLabel" Text="TestText" /> 

また、オブジェクトのパブリックプロパティと同様に、コントロールを使用しているページのコードビハインドからそれらを設定することもできます。

詳細情報はここで見つけることができます:https://msdn.microsoft.com/en-us/library/wt3k2fyw.aspx(ユーザーコントロールを作成する方法) とhttps://msdn.microsoft.com/en-us/library/sbz9etab.aspx(自分のページでそれらを含める方法)

+0

私は検索が、間違った方向に持っています。 「ユーザーコントロール」ではなく「カスタムコントロール」を検索しています。迅速な答えのためのThx。今RTFMです。あなたがコントロールを終えたら、あなたはよく緑のダニを持っています。 –

+0

自分のバージョンのユーザーコントロールで質問を更新できますか?なぜ私はなぜわからないが、効率的であるとは思わないから –

+0

どのような意味で効率的ですか?それは実行が遅いですか、それがあなたのコード構造に役立つとは思わないでしょうか? – ADyson

関連する問題