0

xml と xsl を使用して、asp.net ページでコントロールを生成したいと考えています。

現在、xml コントロールを含む asp.net コンテンツ ページがあります。ページが読み込まれると、xml ファイルが読み込まれ、必要な要素が抽出されて xml コントロールの DocumentContent として設定され、xml コントロールの TransformSource が適切な xsl ファイルに設定されます。

xsl ファイルでは、テンプレートを使用して、xml の内容に応じて asp.net コントロールを作成したいと考えています。コンテンツ ページの xml コントロールでこれを行う簡単な方法はありますか?

4

3 に答える 3

1

XSLに名前空間を登録して、.NETサーバー側タグをXSLに配置できるようにします。XMLに対してXSL変換を実行します。Page.ParseControls()を介して変換の結果を実行します。これにより、優れたコントロール階層が得られます。その関数の出力をControlsコレクション(またはプレースホルダーのcontrolsコレクション)に追加すれば、準備は完了です。

.NETで動的コントロールを使用する際の注意点はたくさんありますので、注意してください。

于 2008-10-13T02:12:30.167 に答える
0

それを行う簡単な方法はわかりませんが、その場で aspnet マークアップを生成し、メモリ ストリーム (または同様のもの) から aspnet ランタイムに送信するシステムがいくつかあります。

umbraco はそのようなシステムを使用していると思いますが、最初のビルダー メカニズムはおそらく aspnet コントロールよりも少し低レベルです。httpmodule など、リクエスト パイプラインの早い段階でヒットするものを使用して達成できる可能性があります。

于 2008-10-12T21:40:23.053 に答える
0

transform の生成された出力は、一連のコントロールとしてページに追加されるために解析されません。むしろ、生成された出力が応答に送信されます。したがって、新しいコントロールを生成する XML コントロールに変換を適用することはできません。

変換結果を作成し、ページに適用できる解析を呼び出す方法があるかもしれませんが、それは「簡単な」要件を満たさないでしょう。

于 2008-10-12T21:17:57.403 に答える