グループ展開後にアイテムが正しく表示されない現象について
(2011 年 11 月 8 日修正)
この現象は以下のパッケージにより修正されました。
修正されたパッケージは以下です。
////////////////////
- 文書番号:
2596484
タイトル:Description
of the SharePoint Foundation 2010 hotfix package (Sts-x-none.msp): October 25,2011
URL : <https://support.microsoft.com/kb/2596484>
----------
Issues that this hotfix package fixes
•The Group By function in a view does not work inSharePoint Foundation 2010 after you apply the hotfix package that is describedin Microsoft Knowledge Base (KB) article 2459108.
----------
-補足情報
なお、前述の修正プログラムは、今回の問題を修正した個別のパッケージとなりますが、本修正は以下にご案内する"累積的な更新パッケージ" (CU)にも修正が含まれております。
累積的な更新パッケージには、今回の問題を含む他の問題の多くの修正が含まれております為、もし、ご利用の環境にて、修正をご適用いただく場合には、以下ご案内の"累積的な更新パッケージ" をご適用いただくことをお勧めいたします。
- 文書番号:
2596505
・SharePointServer 2010 の CU
タイトル:Description
of the SharePoint Server 2010 cumulative update package (SharePointserver-package): October 25, 2011
URL : <https://support.microsoft.com/kb/2596505/>
•SharePoint Server 2010 の CU 適用前には SP1 をインストールする必要があります。
•SharePoint Server 2010 の CU には SharePoint Foundation 2010 の CU が含まれます。SharePoint Server 2010 with Project Server の CU には SharePoint Server 2010、SharePoint Foundation 2010 の CU が含まれます。いずれか 1 つの製品ファミリに対応した CU を適用すれば問題ありません。
•インストールの完了後SharePoint 製品構成ウィザードを実行する必要があります。
////////////////////
こんにちは、SharePoint サポートのナカヤマです。
今回は、SharePoint 2010(SharePoint Foundation 2010 も含む)にて、リストやライブラリ内でグループ化を利用したビューのアイテム表示に関する動作にて、製品の不具合が確認されたため、情報の公開も兼ね、本 blog にて現象の内容、及び回避策についてご案内させていただきます。
近日、本件に関するお問い合わせを数件いただきましたため、可能な限り早急に情報公開をさせていただきたいと思い、本 blog にてご案内させていただくこととなりました。
この度は、弊社製品の問題により、ご迷惑をお掛けしており、大変申し訳ございませんでした。
我々、Japan SharePoint チームでは、できる限り情報は公開し、お客様の問題解決に向け、少しでもご協力できるよう尽力してまりたいと考えております。
現象内容
========
2010 年 12 月以降の更新プログラム(CU)が適用された環境にて、SharePoint サイト内のリストやライブラリにてアイテムの表示をグループ化したビューを作成している場合、グループ展開後にアイテム表示の画面の遷移を繰り返すと、アイテムの表示結果がおかしくなる現象が発生します。
<例>
1. 2010 年 12 月以降の更新プログラム(CU)が適用された環境にて、以下のように、リスト内でグループ化を利用したビューの作成を実施します。
・学年別のビューを作成
・「1学年」「2学年」の各グループを展開すると、それぞれグループ別のアイテム(今回の場合はuserXX)が表示されることを確認します。
2.「2学年」のグループにて、10 件以降のアイテムを表示するため "次 ボタン" (▶) をクリックし、10 件目以降のアイテムを表示します。
3.アイテム確認後、最初のページに戻るため "戻る ボタン"(◀)で最初のページに戻ると、グループ化されたアイテムが表示されず、リスト内にある先頭のアイテム(この場合では「1 学年」グループの先頭のアイテム)リストが表示されてしまいます。
発生条件
--------
・本現象は、2010 年 12 月以降の更新プログラム(CU)が適用されている環境にて発生します。
・リスト内でグループ化を設定している環境で、アイテムをまとめて表示できるアイテム数の設定値を超えている場合(既定の場合は 30 件となります。)
要因
======
この問題は、2010 年 12 月以降の更新プログラム (CU) に含まれるコードの修正に関する不具合 (Regression) となります。(問題の要因は、別の不具合のために追記された..\14\TEMPLATE\LAYOUTS\XSL 配下にある vwstyles.xsl ファイルの修正コードにあります。本修正コードは元々報告されていた別の不具合を解消するための修正でございましたが、その修正コードにより今回のビューに関する問題が引き起こされたというのが本現象の発生経緯です。次期修正では、この部分を再度修正させていただきます。)
回避策
=======
本現象に対する回避策は、以下ご案内の vwstyles.xsl ファイルの内容を修正することで、本事象を回避いただくことが可能となります。
本修正がリリースされるまでは、お手数ではございますが、以下ご案内の対処についてご対応をご検討くださいますようお願いいたします。
(なお、本現象に対する修正は、本日の時点では、次期リリースと予定されている 2011 年 10 月以降の更新プログラムにて修正が予定されております。本修正がリリースまではご案内の対処についてご対応をご検討くださいますようお願いいたします。)
<手順>
1. 以下ディレクトリへ移動します。
> C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\XSL
2. XSL フォルダ配下にある vwstyles.xsl ファイルに編集を加えるため、念のため、バックアップ用に vwstyles.xsl ファイルのコピーを取っておきます。
3. XSL フォルダ配下にある vwstyles.xsl ファイルに以下定義を追加します。
(以下、<xsl:value-of select="$ShowWebPart"/> 箇所の前に <xsl:value-of select="$dvt_prevpagedata"/> の定義を追加します。)
編集前 (2207 行から 2215 行の間)
--------------------------------------------------
<xsl:when test="not($NoAJAX)">
<xsl:choose>
<xsl:when test="$FirstRow <= $RealRowLimit + 1">
<xsl:attribute name="onclick">javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$ShowWebPart"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="onclick">javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$dvt_prevpagedata"/><xsl:value-of select="$ShowWebPart"/>\u0026PageFirstRow=<xsl:value-of select="$FirstRow - $RealRowLimit"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
編集後 (2207 行から 2215 行の間)
------------------------------------------------
<xsl:when test="not($NoAJAX)">
<xsl:choose>
<xsl:when test="$FirstRow <= $RealRowLimit + 1">
<xsl:attribute name="onclick">javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$dvt_prevpagedata"/><xsl:value-of select="$ShowWebPart"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="onclick">javascript:RefreshPageTo(event, "<xsl:value-of select="$PagePath"/>?<xsl:value-of select="$dvt_prevpagedata"/><xsl:value-of select="$ShowWebPart"/>\u0026PageFirstRow=<xsl:value-of select="$FirstRow - $RealRowLimit"/>\u0026<xsl:value-of select='$FieldSortParam'/><xsl:value-of select='$SortQueryString'/>\u0026View=<xsl:value-of select="$View"/>");javascript:return false;</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
4. 前述の定義を追加後に、ファイルを保存します。
5. IIS の再起動を実施します。
前述の対処後に、再度、サイトへアクセスすると、以下の結果のように、グループ化されたアイテム表示が問題なく動作することをご確認いただけます。
<例>
・"2学年" のグループにて、10 件以降のアイテムを "次 ボタン" (▶) で確認後、再度 "戻る ボタン"(◀)で最初のページに戻っても、各グループ化された状態でアイテムが表示されます。