【スクリプト】PageMaxAlign プロパティをFalseに設定した場合、最終ページでNext メソッドを呼び出すとデータが空のページが表示される

文書番号 : 22832     文書種別 : 不具合     最終更新日 : 2006/10/20
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
PageMaxAlign プロパティをFalseに設定した場合、最終ページでNext メソッドを呼び出すとデータが空のページが表示されます。
(Next メソッドは通常、次のページが存在しない場合は、現在のページがそのまま表示されます。)

[再現手順]
1.新規WebフォームにSPREADとButtonを配置します。
2.下記のサンプルコードをコピーします。
3.アプリケーションを実行します。
4.Buttonを2回押下します。
5.データが空のページが表示されます。

[サンプルコード]
-------------------------
Webフォームクラス
-------------------------
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Page.IsPostBack Then
      Return
    End If

    FpSpread1.ActiveSheetView.PageMaxAlign = False
    FpSpread1.ActiveSheetView.RowCount = 20
  End Sub

-------------------------
HTML
-------------------------
            ・
           <略>
            ・
    <SCRIPT language="javascript">
      function GotoNext()
      {
        var spread = document.all("FpSpread1");
        spread.Next();
      }
    </SCRIPT>
            ・
           <略>
            ・
<INPUT style="Z-INDEX: 102; LEFT: 528px; POSITION: absolute; TOP: 64px" type="button" value="Button" onclick="GotoNext();">
回避方法
2007/09/05版で修正済み。

2007/09/05版より前のバージョンでは次の回避方法が有効です。

TopRowChanged イベントを利用して最終ページ以降のページへの遷移を防ぎます。

-------------------------
Webフォームクラス
-------------------------
  Dim cTrow As Int32

  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Page.IsPostBack Then
      cTrow = FpSpread1.ActiveSheetView.TopRow
      Return
    End If

    FpSpread1.ActiveSheetView.PageMaxAlign = False
    FpSpread1.ActiveSheetView.RowCount = 20
  End Sub

  Private Sub FpSpread1_TopRowChanged(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.TopRowChanged
    Dim trow As Int32 = CInt(e.CommandArgument)

    If Not (trow < e.SheetView.RowCount) Then
      e.SheetView.TopRow = cTrow
      e.Handled = True
    End If
  End Sub

-------------------------
HTML
-------------------------
            ・
           <略>
            ・
    <SCRIPT language="javascript">
      function GotoNext()
      {
        var spread = document.all("FpSpread1");
        spread.Next();
      }
    </SCRIPT>
            ・
           <略>
            ・
<INPUT style="Z-INDEX: 102; LEFT: 528px; POSITION: absolute; TOP: 64px" type="button" value="Button" onclick="GotoNext();">
キーワード
SPRN05829

この文書は、以前は次のバグレポートIDで公開されていました : 6542