このサイトをビューするために JavaScript を有効化してください。

Altova MobileTogether Designer

コントロールテンプレートの使用のもう一つの利点はパラメーターの値をコントロールテンプレートにパスし、動的にテンプレート内のコンテンツを変更できる点です。サンプルファイル Cities3-DynamicUpdates.mtd 内では前のサンプル Cities2-SwitchTemplates.mtd に並べ替え機能が導入されています。これにより国および/または都市の表示が並べ替えられるべきかをユーザーが決定できるようになります (下のスクリーンショット参照)

 

MTDCTExS3Sim01

 

 

しくみ

並べ替え機能を実装するには以下が行われました:

 

追加 $sort パラメーターが両方のコントロールテンプレートに追加されました。

トップページのデザイン内では各プレースホルダコントロールの右側にチェックボックスコントロール が追加されています(下のスクリーンショットを参照してください)チェックボックスの列の幅を wrap_content に設定してください。各チェックボックスの 可視 プロパティを適切に設定してください。

$PERSISTENT ツリー内では2個の新規の属性 SortCountriesSortCities が追加し、デフォルトの固定値を 0 に設定します(下のスクリーンショットを参照)。これらのノードが(選択済み、または選択済みでない)対応するチェックボックスの値により更新されるように設定します。これは各ノードを対応するチェックボックスにドラッグして行います。

MTDCTExS3SortNodes

各プレースホルダのために $sort パラメーターの値を XPath 式になるように定義します if ($PERSISTENT/Root/@SortCountries=1) then true() else false() and if ($PERSISTENT/Root/@SortCities=1) then true() else false()

各コントロールテンプレートではテーブルの繰り返し行または繰り返し列を生成するシーケンスが Xpath 式if ($sort) then sort($values) else $valuesにより定義されています。プレーンが言語では、以下を意味します: $sort パラメーターの値が true()の場合、 $values シーケンスにアイテムを並べ替えます。それ以外の場合( XML データファイル CitiesWorldwide.xml内の順序である) $values シーケンスをそのまま使用します

MTDCTExS3CTVerticalRadioButtons

 

以下が発生します:

 

SortCountriesSortCities 属性の値は0 の初期の値に設定されます。(値を 1 に設定して)両方の値を選択、または(値を0 に設定して)それぞれのチェックボックスの選択を解除することにより値を変更することができます。

対応する属性ノード (SortCountries and SortCities) の値は対応するコントロールテンプレートの2つのプレースホルダを介して $sort の2つのパラメーターに true() または false() としてパスされます。

繰り返し行または繰り返し列を生成する $values シーケンスのアイテムを選択する Xpath 式はテンプレートの $sort パラメーター (true() または false())の値に従いシーケンスを並べ替え、または並べ替えしません。

 

(C) 2020 Altova GmbH