2009-04-22 10 views
0

私は、自分の顧客が選択した入力フォームをレイアウトする必要があるアプリケーションを作成しています。ASPコントロール用のHTMLテンプレート

私はプレースホルダをHTMLテンプレートを使用して、実行時にsecified .NETコントロールでこれらを交換したいと思います:

<table style="width: 100%;"> 
<tr> 
    <td colspan="2"> 
     <fieldset title="Customers Template" > 
      <table style="width:100%;"> 
       <tr> 
        <td width="140"> 
         Policy Number:</td> 
        <td width="150"> 
         $$Policy Number$$</td> 
        <td colspan="2" rowspan="3" valign="top"> 
         Type 1:<br /> 
         $$Type 1$$</td> 
        <td rowspan="3" valign="top"> 
         Info:<br /> 
         $$Info$$</td> 
        <td rowspan="3" valign="top"> 
         Problems:<br /> 
         $$Problems$$</td> 
       </tr>... 

は、だから私は見つけると、様々なと私$$ XXX $$テキストを置き換えたいです.NETコントロールは、実行時に追加されるフィールドのデータ型に応じて異なります。

これにアプローチする良い方法についてのご意見はありますか?

おかげで、 マーク

答えて

1

<asp:PlaceHolder>コントロールを使用して$$ $$ xxxのブロックを交換してください。あなたが最も最も単純なケースでは、あなたは、あなたは、単にすべてのChildNodesを反復処理するための.NET XML APIを使用することができ、テンプレートは有効なXHTMLも必要とすることができます---テンプレート

を解析することができ、実行時に

XmlDocument各要素から、適切なASP.NETサーバーコントロールを構築します。あなたが解析として、あなたは<asp:PlaceHolder>を参照してくださいどこより複雑な(と完全なHTMLパーサ)については

は、http://www.developer.com/net/csharp/article.php/2230091

を参照してください - あなたのテンプレートを定義し、あなたのロジックであることを置き換えます。

チュートリアル:http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=752

+0

HTMLテンプレートが作成され、供給、作成したとによって制御され、私の顧客であり、実行時に動的にロードされます。私はASPの場所の所有者がファイルを動的にロードするときにコントロールコレクションに正しく登録されないと思う:-( –

+0

ファイルを動的にロードする方法に応じて - テンプレートを解析し、ASP.NETコントロールをプログラムでビルドすることができます – Adam

+0

Aha、これは私が後にしていることです:-)私は既にASP.NETコントロールをプログラムで構築する方法を知っていますが、実際にはどのようにテンプレートを解析しますか? –

0

あなただけの文字列でこれらのプレースホルダを交換するつもりならはNVelocity template engineを見てみましょう。 In this answer、テンプレートを使用してメールを作成する方法を簡単に示します。

しかし、asp.netのサーバーコントロールのために、あなたはチャンクにあなたのHTMLテンプレートを分割することができ、そしてそのようなLiteralControlとしてあなたのページに追加:

Page.Controls.Add(new LiteralControl(@"<td width='140'> 
         Policy Number:</td> 
        <td width='150'>")); 
Page.Controls.Add(textBox1); 
Page.Controls.Add(new LiteralControl(@"</td><td colspan='2' rowspan='3' valign='top'> 
         Type 1:<br />")); 
関連する問題