製品のコールバック中に他ページに移動できますか?

文書番号 : 39186     文書種別 : 使用方法     登録日 : 2015/11/25     最終更新日 : 2015/11/25
文書を印刷する
対象製品
SPREAD for ASP.NET 8.0J
詳細
製品のコールバック機能はSPREADのみを更新するため、発生するイベント内でSPREAD以外のコントロールの操作や他ページへの移動はできません。

ただし、製品のコールバック機能を無効(EnableAjaxCallプロパティをFalse)にしポストバックを利用することで他ページへの移動が可能です。この場合、UpdatePanelを併用することでポストバックによるページ全体のリロードを回避することができます。

◎サンプルコード(VB)
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If IsPostBack Then Return

  ' 製品のコールバックを無効
  FpSpread1.EnableAjaxCall = False
End Sub

Protected Sub FpSpread1_UpdateCommand(sender As Object, e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.UpdateCommand
  For i As Integer = 0 To e.EditValues.Count - 1
    If Not Object.ReferenceEquals(e.EditValues.Item(i), FarPoint.Web.Spread.FpSpread.Unchanged) Then
      ' セルに「error」と入力されていたら
      If CStr(e.EditValues.Item(i)) = "error" Then
        ' 他ページに移動
        Response.Redirect("Default.aspx")
      End If
    End If
  Next
End Sub

◎サンプルコード(C#)
protected void Page_Load(object sender, EventArgs e)
{
  if (IsPostBack) return;

  // 製品のコールバックを無効
  FpSpread1.EnableAjaxCall = false;
}

protected void FpSpread1_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
  for (int i = 0; i <= e.EditValues.Count - 1; i++)
  {
    if (!Object.ReferenceEquals(e.EditValues[i], FarPoint.Web.Spread.FpSpread.Unchanged))
    {
      // セルに「error」と入力されていたら
      if (System.Convert.ToString(e.EditValues[i]) == "error")
      {
        // 他ページに移動
        Response.Redirect("Default.aspx");
      }
    }
  }
}