【セル型】 cookieless=true 設定下でカスタムセル型が正しく動作しない

文書番号 : 21835     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
既存のセル型クラスを継承するカスタムセル型クラスを作成し、クライアント側動作をHTCファイルにて実装している場合、アプリケーションのセッション状態としてcookieless を true に設定すると HTC ファイルが正しく実行されない可能性があります。

HTC ファイルは実行時に Cookie に保存されます。
そのためアプリケーションの Web.config にて cookieless=true を指定すると アプリケーションはCookie を使用せず HTC ファイルがクライアント側に保存されません。この場合アプリケーションはHTCファイルを参照できず、クライアント側動作が正しく実行されないという次第です。

製品が提供する fpspread.htc ファイルはこのような現象を回避するため IIS 上に作成された仮想ディレクトリに保存されています。この場合、個別のアプリケーションで設定した cookielessの値に依存せず正しく動作します。

もしアプリケーションのセッション状態として cookieless=true に設定する場合はHTC ファイルをアプリケーションの設定に依存しない別のディレクトリに保存し、そのディレクトリを IIS の仮想ディレクトリとして設定、ファイルの参照先についてカスタムセル型クラスの内容を書き換えて下さい。

例えばカスタムセル型クラスにて次の2つのHTCファイルを使用しているとします。これらを製品にて提供される fpspread.htc と同じ場所に保存します。

 - mydoublerender.htc
 - mydoubleeditor.htc

保存先:
<Program Files Folder>¥Common Files¥FarPoint Technologies¥SpreadNETWebv25¥fp_client¥fpspread¥2_5_1004_2002¥htc
(VS2005をご利用の場合:<Program Files Folder>¥Common Files¥FarPoint Technologies¥SpreadNETWebv25¥fp_client¥fpspread¥2_5_2004_2005¥htc)

その上でカスタムセル型クラスを次のように変更します。

【修正箇所】
 - PaintCellメソッド
 - EditorClientScriptUrlプロパティ

【修正内容】
  ''PaintCellメソッド
  Public Overrides Function PaintCell(ByVal id As String, _
           ByVal parent As TableCell, _
           ByVal style As Appearance, _
           ByVal margin As Inset, _
           ByVal val As Object, _
           ByVal upperLevel As Boolean) As Control
    If upperLevel Then
      parent.Attributes.CssStyle.Add("behavior", "url(" + parent.ResolveUrl("/fp_client/fpspread/2_5_1004_2002/htc/mydoublerender.htc") + ")")
    End If
    Return MyBase.PaintCell(id, parent, style, margin, val, upperLevel)
  End Function

  ''EditorClientScriptUrlプロパティ
  Public Overrides ReadOnly Property EditorClientScriptUrl() As String
    Get
      Return "/fp_client/fpspread/2_5_1004_2002/htc/mydoubleeditor.htc"
      ''VS2005をご利用の場合は↑をコメントし、↓のコメントを外してください。
      ''Return "/fp_client/fpspread/2_5_2004_2005/htc/mydoubleeditor.htc"
    End Get
  End Property


キーワード
セル型 一般

この文書は、以前は次のFAQ IDで公開されていました : 9159