0

私は CFCHART を広く使用して、当社に関するさまざまな組織統計をリストする Web サイトを持っています。男性と女性のチームメンバーの割合、EEO コンプライアンスの民族的遺産の内訳などです。これらのアクションを実行する必要があった古い Web サイトは現在更新中です。古いサイトでは、作成時に使用されたデータと仮定と共にチャートのコンテンツを表示するためにフレーム ベースのレイアウトが使用されていました。基本的なフレームは次のようになります。

左の列には、現在ハードコードされているコンテンツが表示されています。各ページには独自のハードコーディングされた HTML オプションがあるため、これは何百ものレポートのメンテナンスを悪夢にしています。レポートで繰り返し使用される同じドロップダウン オプションを含む一連の異なる CFINCLUDE ステートメントを使用することで、これに対処しています。

左パネル フレームに現在含まれている「GO」ボタンをユーザーがクリックするたびに、中央のコンテンツ ペインが更新されるようにします。

ウェブサイトにフレームを使用すると、多くの制作上の問題が発生するという話を繰り返し耳にします。また、サイトをできるだけ保守しやすいものにするように努めているため、JQuery や SPRY などのフレームワークの使用は可能な限り避けています。

フレームを取り除くために、現在 CFLAYOUT を使用して新しいページをセグメント化しています。新しい左側のペインと中央のコンテンツ ペインを保持する CFLAYOUTAREA がネストされています。中央のコンテンツ ペイン内には、グラフ、Excel データ、およびグラフで使用される仮定を含む、Tab タイプの CFLAYOUTAREA を持つ別のネストされた CFLAYOUT があります。(申し訳ありませんが、ドロップダウンの左側にある情報は機密情報であり、表示できません)


課題:

![ここに画像の説明を入力][2]

ページの上部または左側を更新せずにサイトの中央部分を更新し、ユーザーが移動ボタンをクリックしたときにグラフとデータ タブのみを更新する方法を見つけようとしています。Coldfusion で Javascript 関数を探してインターウェブを検索しましたが、タブを更新するオプションがないようです。

試した解決策: ColdFusion.Layout.createTab() スクリプトを使用してタブを作成し、それを go 側の画像ボタンに適用してみました。アイテムがネストされているため、レイアウトに問題が発生しているようです.... 構文が機能しません。

ページを更新するためにJavascriptを試しましたが、これにより、ユーザーが左側で選択したすべてのオプションがフォームから失われます。

グラフが新しいタブで作成され、ユーザーが前後にクリックしてグラフを作成するために選択したオプションを表示できるように、データが十分に永続的であるとよいでしょう。私はあなたの応答を楽しみにしています。

4

2 に答える 2

0

ここでの解決策は、ページの上部にスクリプトを追加し、ColdFusionが中央ペインにAJAXパスを作成するために通常使用するものとは少し異なる構文を使用することでした。CFLAYOUTを使用するのではなく、代わりにさわやかなDIVを使用することにしました。DIVの更新を処理するスクリプトと、更新されたDIVに物を渡すための構文を以下に示します。

<script>
    function refreshDiv() {
    ColdFusion.Ajax.submitForm('graphOptionsFORM','graphStaffPlanningToolShow.cfm',callBack,errorHandler);
    ColdFusion.navigate('graphStaffPlanningToolShow.cfm','graphContent'); 
    }

    function callBack(text) {
        return true;
    }

    function errorHandler(code, msg) {
        alert("Error: " + code + " " + msg);
    }
</script>

ページDIVは、バインド付きのCFDIVタグを使用して、各コントロールのAJAXコンテンツを更新します。

<CFDIV id="graphContent" 
    bind="url:graphStaffPlanningToolShow.cfm?ORG_STR={ORG_STR}&ORGNUM={ORGNUM}&JOB_DISC={JOB_DISC}&FLSA_STATUS={FLSA_STATUS}&LAB_SITE={LAB_SITE}&HEADCOUNT_OVERRIDE={HEADCOUNT_OVERRIDE}&EXTERNAL_SEPERATIONS={EXTERNAL_SEPERATIONS}&INTERNAL_MOVEMENTS={INTERNAL_MOVEMENTS}" />
</CFDIV>
于 2012-04-04T15:44:03.450 に答える
0

jQuery と load() メソッドを使用できます - http://api.jquery.com/load/。これにより、チャートを生成するページに値を渡し、結果の HTML をページの要素に表示できます。フレーム化されたページにロードされていたのとまったく同じ .cfm ページを使用することもできます。

于 2012-04-03T03:33:15.583 に答える