通知をどのようにこれらのリストをリクエスト変数を使用してですか?また前後には、それらを別の許容可能な使用されている親タグの終了モードやネストされた子タグ間の通信にリクエスト変数を使用します。また、CFASSOCIATEとGetBaseTagDataを使用してこの操作を行うことができます()、しかし、そうするように、より複雑になります。

記事は、グレッグハンター提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、""リクエストスコープを使用して、自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。

リクエストスコープを使用して

カスタムタグ内の変数を独自の変数空間で、呼び出し元のページとカスタムタグとの間でデータを共有する唯一の方法を前後に存在する属性、および呼び出し元のスコープを使用しています。リクエスト変数のすべてを含む要求のテンプレートをご利用いただけますカスタムタグ、およびRequest.MainDSN、Request.Usernameなどのグローバル変数へのカスタムタグにアクセスし、Request.Passwordを与えるための最良の方法です。一般に、グローバル定数への資料請求をご利用のスコープの変数は、カスタムタグ内に制限する必要がなこれらのよう。他のすべてのデータは、カスタムタグによって必要に応じて属性を介して渡される必要があります。にできる機能は、カスタムタグを再帰的に呼び出すことができます。ため、カスタムタグ内で再帰が異なるユーザーに比べて使用されますしかし、これは、先進的な規模、通常では稀ですが、定義されて機能します。のためのUDFの詳細計算を行うに適している場合、UDFの複数の数値再帰を見つける。一方、カスタムタグ内で再帰最適な構造やディレクトリ階層を再帰的のような手順についてはここでの目的は、ページ出力ではなく、各再帰呼び出しから単一の結果を返す適しています。このコードは、ディレクトリのパスをとりますカスタムタグを示して、すべてのファイルとそのパスのサブフォルダのリストを返します。これと同様のサブディレクトリの内容を表示する再帰を使用します。

 #Attributes.Directory#\ 
#Attributes.Directory#\#GetFiles.Name#
  

のCFIFのテスト"GetFiles.Name NEQ"。"とGetFiles.Name NEQ ".."" ColdFusion MXでは、必要に応じされていないため、MXを返されなくこれらの値です。我々はColdFusion 5。ListDir.cfmとの下位互換性のため、このリストには、テスト保たすべてのファイルとディレクトリは、タグに渡されたのサブフォルダを取得するcfdirectoryを使用します。ファイルとディレクトリのリストを次に、ループのすべてのファイルがあると認めるときに出力します。たびに、ループのディレクトリを検出すると、ListDir.cfm再帰的には、新しいディレクトリ名を渡して自分自身を呼び出します。我々のシステムでは、次を使用してListDir.cfmと呼ばれる:

cfabortに到達直後に、要求の実行を停止する方法として記載されて。カスタムタグの内部には、ほとんどすべての要求を終わりにしたいが、あなたのタグとは、呼び出し元のページへの復帰の実行を終了する場合があります。CFEXITを呼び出すよう以下のとおり:

する方法については、次の3つの値があります:

ExitTag:終了タグの後に実行を再開します。

ExitTemplate:後のいずれかどこに呼ばれるのに応じて、開いたり、閉じタグは、実行を再開します。

ループ:再カスタムタグのボディを実行します。

ない場合に終了タグがExitTag、その実行の意味は、現在のタグを停止し、終了タグ(または開始タグの後に続きます)。コードは、カスタムタグとその呼び出し元のページを見る。

このタグの内容です。 このコンテンツを視聴されている終了タグの後に。
これは、開始タグの内容です。 このコンテンツを視聴されているCFEXIT呼び出しの後に。 これは、終了タグの内容です。 

MyTagCall.cfm生成を実行すると、次の:

これは、開始タグの内容です。このコンテンツを視聴されている終了タグの後に。

CFEXITを呼び出すと、すぐなので、ColdFusionは、タグ内のすべての余分な出力と、呼び出しページをスキップ過去の終了タグをスキップします。 ExitTemplate ExitTagに似ています実際には、場合にのみ起動モードでの呼び出しが違うのではなく、タグを終了するのは、現在のテンプレートの最後に、過去をスキップExitTag、他の単語は、[スタートモードでExitTemplateを呼び出すことで実行がすぐに開始タグのボディ。エンドモードでは、他の手を呼び出すExitTemplateですぐには、カスタムタグを終了します。

これは、開始タグの内容です。 このコンテンツを視聴されているCFEXIT呼び出しの後に。 これは、終了タグの内容です。 

現在のコードの呼び出しは、次の出力例を示します:

これは、開始タグの内容です。これは、タグの内容です。これは、終了タグの内容です。このコンテンツを視聴されている終了タグの後に。

ExitTemplateは、[スタートモードの終了をスキップしますが、体の先頭で実行を続けている。ため、ループのコードは既に実行中の実行ループは非常にExitTagとExitTemplate異なっています。むしろ、タグ、ループを再過去の一部をスキップするよりも、カスタムタグのボディを実行します。このように、そのカスタムタグのエンドモードでのみ呼び出すことができます。ループそれほど頻繁にExitTag以上ExitTemplateとほぼ独占的にネストされたタグで使用されて使用されて、これら2つのタグへの変更は、タグのアーキテクチャを変更する必要があります。コードでは、OutputTable.cfmほとんどの仕事を行なったし、OutputColumn.cfmだけでは、データベースとリストの出力は、ヘッダー行から選択する列を定義します。変更は、次のリストにするつもりだOutputTable.cfmデータベースからデータを取得するが、確認はほとんどOutputColumn.cfmは、労働者のより良い事業部です該当するデータを出力する。コードを見るOutputTable.cfmとOutputColumn.cfmに変更。

セレクト #ThisTag.AssocAttribs [私]。ColumnName# 
から#Attributes.TableName# 
#Attributes.Label# #Request.GetData [Attributes.ColumnName] [Request.RowNumber]#

Online: 413 users browsing the articles directory