2009-07-03 1 views
2

プロジェクトでSPLongOperationオブジェクトを使用して、新しいページに移動している間に遅延を導入しています。既定のCSSスタイルとブランディングが使用されています。SharePoint 2007のSPLongOperationオブジェクトについて

私はこのページのデザインをカスタマイズし、私自身のテーマとブランドを適用したいと思います。

animated gears_an.gifイメージを持つSharePoint 2007スピンホイールを表示するページにカスタムマスターページを適用する方法を教えてください。

ありがとうございます。

+0

:このHttpModuleを、次のスニペットに応じて、あなたが問題のページにアクセスしているかどうかを検出し、そのマスターページを変更します: http://ruudheemskerk.net/archive/2009/11/24/long-operations-in-sharepoint-part-2.aspx – ScottE

答えて

0

残念ながら、SPLongOperationクラスはシールされており、歯車のASPXファイルもハードコードされています。

変更できる唯一の方法は、12\template\layouts\gear.aspxファイルを編集することです。これにより、このファイルを変更する将来の製品の更新で問題が発生する可能性があることに注意してください。

2

ページレイアウトを変更する唯一の(サポートされていない!)方法は、各WFEのファイルシステム上のgear.aspxを更新することです。これは、LAYOUTSのコピーを使用している場合を除いて、ファーム全体の変更となることに注意してください。これは、このルートに進むことを決定した場合に一般的に推奨されます。

実際に巧妙になるには、操作のLeadingHTMLTrailingHtmlプロパティの値は、レスポンスストリームに書き込まれる前にエスケープされません。あなたは、など

更新、DOMを操作するスタイルシートのリンクを注入する<script>を書くために、これらのプロパティのいずれかを使用することができます。私は一緒に素早く概念実証のスクリプトインジェクションhereのを置きます。

2

私は唯一のOOBファイルを変更することに同意しません。

これを解決するには、カスタムHTTPモジュールを開発してルールを折り曲げる必要があります。私は、これは2007年に適用されるが、ここではより多くの制御を可能とする別のオプションであるかどうかわからないんだけど

private void page_PreInit(object sender, EventArgs e) 
{ 
    Page page = sender as Page; 
    // Do your checking/filtering here 
    if (true) 
    { 
    page.MasterPageFile = "<whatever you have.master"; 
    } 
} 
+0

あなたはそうです。おそらくそれを行う最良の方法です。 –

+0

SPLongOperationがホスト・ページのマスター/制御階層をまったく処理せずにレスポンス・ストリームに直接書き込む点を除いては、通常、HttpModuleはオプションですが、ここでは役に立たないと思います。 – dahlbyk