Next Page

1

Previous Page

スレッド: Application.cfcのonRequestEndで何か出力するとcfgrid(CF8)が使えない?

作成日: 10/29/07 11:10 AM

返信: 2

CFIF


半人前


入会日: 05/30/07

投稿数: 38

Application.cfcのonRequestEndで何か出力するとcfgrid(CF8)が使えない?
10/29/07 6:24 PM

ちょっと前に似たような質問がありました。
Application.cfcでcfgridのあるページをincludeできないといった内容で、結論としては「ダメ」ってことだったと思います。

今回のはもうちょっと単純で、
Application.cfcのonRequestEndで何か出力するとcfgrid(html)の内容が表示されなくなってしまうという不具合です。

何か解決方法があればお願いします。

Application.cfc

<cfcomponent>
 <cffunction name="onRequestEnd" output="yes">
  <h1>dummy</h1>
  </body>
  </html>
 </cffunction>
</cfcomponent>

gridtest.cfm

<html>
<head>
<title>gridtest</title>
</head>

<body>
<cfform name="form01">
 <cfgrid format="html" name="grid01" pagesize=10 sort="yes" 
bind="cfc:getDat.getShiten({cfgridpage},{cfgridpagesize},{cfgridsortcolumn},{cfgridsortdirection})">
 <cfgridcolumn name="shiten_cd" display="yes" header="shiten_cd" >
 <cfgridcolumn name="shiten" display="yes" header="shiten" >
 </cfgrid>
</cfform>

getDat.cfcは省略しますが、Application.cfc、gridtest.cfmと同じディレクトリに置いています。

Application.cfc を
output="no"とすると、意図した値が表示されますが、
output="yes"とすると、グリッドの中身が表示されず、
includeされた.jsで下記のエラーが発生してしまいます。

window:global: catch ステートメントでは適用されますが、throw ステートメントでは適用されません。 (line 787)

onRequestStartでも同じエラーが発生します。

ヘッダやフッタの表示にonRequestEndなどを使っている場面って多いと思うのですがどうでしょうか。

Link | Top | Bottom

katz


一人前


入会日: 05/31/07

投稿数: 140

Re: Application.cfcのonRequestEndで何か出力するとcfgrid(CF8)が使えない?
10/29/07 6:42 PM

あまりうまいやり方ではないと思いますが,onRequestEnd関数のtargetPage引数を見て,拡張子がcfcだったら出力しないという方針はどうでしょうか。

<cfcomponent>
 <cffunction name="onRequestEnd">
  <cfargument type="String" name="targetPage" required="true">
  <cfif REFindNoCase('\.cfc$', Arguments. targetPage) NEQ true>
    <cfoutput><h1>dummy</h1>
    </body>
    </html></cfoutput>
  </cfif>
 </cffunction>
</cfcomponent>

こんな感じですかね。未検証です。

----
ColdFusion−開発効率を求められる今だから知りたい高性能Webアプリケーションサーバー

Link | Top | Bottom

CFIF


半人前


入会日: 05/30/07

投稿数: 38

Re: Application.cfcのonRequestEndで何か出力するとcfgrid(CF8)が使えない?
10/29/07 8:10 PM

katzさん、早速ありがとうございます。

<cfcomponent>
 <cffunction name="onRequestEnd" output="yes">
  <cfargument type="String" name="targetPage" required="true">
  <cfif REFindNoCase('\.cfc$', Arguments.targetPage) is False>
  <h1>dummy</h1></body></html>
  </cfif>
 </cffunction>
</cfcomponent>

といった感じでうまく動きました。
ありがとうございます。

Application.cfcとの関係は、スッキリしてほしいですよね。
:::-(::

Link | Top | Bottom

Next Page

1

Previous Page

新規投稿

ログイン して返信して下さい。