4

これは、1つの投稿にまとめられた多くの質問だと思います。

TabContainerに似たウィザードのようなコントロールを構築したい

ここに画像の説明を入力

しかし、特定のカスタマイズが必要です。これらは、TabPanel にヘルプ テキストを関連付けたいようなものです。したがって、タブパネル用に以下のようにマークアップを書きたいと思います。

<cc1:MyTabPanel ID="mtp1" runat="server">
    <HelpTextTemplate>
        This is your step 1 which is about ...
    </HelpTextTemplate>
    <ContentTemplate>
        Content goes here...
    </ContentTemplate>
</cc1:MyTabPanel>

では、そのようなマークアップを作成するにはどうすればよいでしょうか? HelpTextTemplateまた、コード ビハインドからのコントロールは、サーバー コントロールなどすべてを含む可能性のあるデータにどのようにアクセスできますか?

さらに、上の写真には「保存」というボタンがあることに注意してください。ユーザーは、タブ パネルにドラッグ アンド ドロップするだけです。ユーザーがそれをダブルクリックすると、コード ビハインドでメソッド スタブが生成されます (これは aspx ページに属します)。このすべてはどのように達成されますか?

そして、ソリューション全体を締めくくるには、そのタブ機能をシミュレートするためにいくつかの JavaScript を配線する必要があることに気付きました。ここにも css があります (タブの後ろの画像に注意してください - グラデーションなど)。私が見ている側面は、これを、ツールキットのタブコンテナー コントロールと同じように、ユーザーがすぐに使用できるコントロールにすることです。したがって、css/javascript をバンドルする必要があります。これを達成する方法は?

編集:

また、コントロール デザイナー (デザイン時の対話) の一部を作成することにも関心があります。asp.net ウィザード コントロールと同じ方法で機能を探しています。上記の質問のいくつかに対する回答を見つけました。時間があれば追加します。

4

3 に答える 3

0

作成しようとしているコントロールはそれほど複雑ではありませんが、さまざまな手法が必要です。

既存のコントロールを継承するのではなく、独自のコントロールを最初から作成することをお勧めします。CompositeControl をベースとして使用すると、柔軟性が高くなるため、おそらく最適です。

HelpTextTemplate/ContentTemplate については、いくつかの ITemplate コンテナを作成する必要があります。これらの設定方法については、この記事http://msdn.microsoft.com/en-us/library/aa478964.aspxを参照してください。HelpTextTemplate のコンテンツ/コントロールにアクセスする場合は、アクセス方法について次の記事を参照してください: ASP.Net ITemplate - 宣言の方法.

タブについては、これはカスタムなので、おそらく AjaxControlToolkit は避けるでしょう。代わりに、jQuery UI への参照を含め、jQuery UI タブを使用します: http://jqueryui.com/demos/tabs/。CompositeControl は、いくつかの div、ul/li 要素を出力する必要があるだけで、タブを作成する準備が整います。

AJAX コントロール ツールキット タブの使用に固執している場合でも、使用できます。カスタム コントロールでインスタンスをインスタンス化し、それをコントロール ツリーに追加してから、http: //msdn.microsoft.com/en-us/library/0e39s2ck.aspxのような手法を使用して、テンプレートのコンテンツをタブ ページに追加します。

コントロールをツールボックスからページにドラッグ アンド ドロップするのは簡単です。サーバー コントロール ライブラリが既に Web サイトと同じソリューションの一部である場合は、それが表示されます。最悪の場合、[アイテムの追加] オプションを使用して、DLL を参照して追加できます。ボタンをダブルクリックしたときに Click イベントが作成される方法については、クラスの属性を介して行われます。既定のイベントの設定に関するこのチュートリアルをご覧ください: http://msdn.microsoft.com/en-us /library/43sxkdeb .

ライブラリへの JavaScript の埋め込みに関しては、次の 2 つの質問で、特に jQuery UI 用にこれを行う方法が説明されています。他の方法を選択した場合でも、関連するはずです: How to embedded jquery library in asp.net custom server control? http://forums.asp.net/t/1599621.aspx/1

設計時のサポートについては、これに関する Microsoft の記事 (サンプルを含む) を見直してみてください: http://msdn.microsoft.com/en-us/library/aa478960.aspxまたはこの CodeProject の記事: http://www. codeproject.com/Articles/9227/ASP-NET-Server-Control-Design-Time-Support .

于 2012-06-25T18:27:39.740 に答える
0

スクリプトまたは画像をasp.netカスタムコントロールに埋め込むために、以下のサイトに記載されている解決策を見つけました:

カスタムasp.netコントロールを使用してjsリソースを埋め込む

于 2012-06-20T11:49:16.447 に答える
0

ここで私が提案することは大げさに聞こえるかもしれませんが、あなたが求めるものとあなたがそれを勝ち取った方法について、他の簡単な方法は考えられません。

TabContainer のソース コードを取得して複製し、そのソース コードに基づいてすべてのカスタム設定を作成します。最初のステップは、この asp.net ツールキットの完全なソース コードを取得し、ビルドを機能させることです。2 番目のステップは、TabControl の複製を新しい名前で追加することです。次に、このクローンで作業して、必要に応じて変更を加えます。最後のステップは、可能であればカスタム コントロールをスタンドアロン ライブラリに分離することです。

完全な asp.net ajax コントロール ツールキットの最新バージョンをダウンロードします。

http://ajaxcontroltoolkit.codeplex.com/SourceControl/list/changesets

ここでは、TabContainer のみのソース コードをオンラインで見ることができます。

http://ajaxcontroltoolkit.codeplex.com/SourceControl/changeset/view/2c482e5ad6c4#Server%2fAjaxControlToolkit%2fTabs%2fTabContainer.cs

于 2012-06-22T11:22:53.637 に答える