クライアント側スクリプトでポストバックを発生させたら変更値が反映されなかった

文書番号 : 21851     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
クライアント側スクリプトにて Form.submit() などを実行してポストバックを発生させた時、SPREAD上の変更内容が反映されない可能性があります。

これはSPREADの最新の状態がポストバックデータに保存されていなかったことが原因として考えられます。

SPREADでは、クライアント側メソッドUpdatePostbackDataメソッドを実行することで、 SPREADの最新の状態をポストバックデータに保存することができます。

なお、この場合もクライアント側での変更を確定するにはサーバー側でSaveChangeメソッドを実行する必要があります。SaveChangesメソッドについては、関連情報をこのFAQの最後にある「関連するFAQ」でも掲載しています。

【VB サンプルコード】
------------------------
クライアント側スクリプト
------------------------
<script language="javascript">
  function window.onload(){
    var sprd = document.all("FpSpread1");
    if (sprd != null) {
      sprd.onDataChanged = dataChanged
    }
  }
        
  function dataChanged() {
    var sprd = document.all("FpSpread1");
    sprd.UpdatePostbackData();//ポストバックデータを更新します。
    window.self.document.Form1.submit(); //Form1はフォームのIDです。
  }
</script>

------------------------
Webフォームクラス
------------------------
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Page.IsPostBack Then
      '変更の確定
      FpSpread1.SaveChanges()
    End If
  End Sub
関連情報
キーワード
クライアント側スクリプト

この文書は、以前は次のFAQ IDで公開されていました : 9175