製品のコールバック中に他ページに移動できますか?
対象製品
SPREAD for ASP.NET 8.0J
詳細
製品のコールバック機能はSPREADのみを更新するため、発生するイベント内でSPREAD以外のコントロールの操作や他ページへの移動はできません。
ただし、製品のコールバック機能を無効(EnableAjaxCallプロパティをFalse)にしポストバックを利用することで他ページへの移動が可能です。この場合、UpdatePanelを併用することでポストバックによるページ全体のリロードを回避することができます。
◎サンプルコード(VB)
◎サンプルコード(C#)
ただし、製品のコールバック機能を無効(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
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");
}
}
}
}
{
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");
}
}
}
}