【エンコード】グローバリゼーションの設定を”Shift_JIS”にした場合、コールバックするとコンボボックス型セルの選択が最初のリスト項目に変更される

文書番号 : 23579     文書種別 : 不具合     最終更新日 : 2007/03/03
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
グローバリゼーションの設定を”Shift_JIS”に設定した場合、コールバックするとコンボボックス型セルの選択が最初のリスト項目に変更されます。

[再現手順]
1.新規WebフォームにSPREADとボタンを配置します。
2.下記サンプルコードをコピーします。
3.アプリケーションを実行します。
4.ボタンを押下します。
5.A1セルの値が「あ」に変更されます。

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

    Dim cbstr As String()
    cbstr = New String() {"あ", "い", "う", "え", "お"}
    Dim cmbbx As New FarPoint.Web.Spread.ComboBoxCellType(cbstr)
    cmbbx.ShowButton = True
    FpSpread1.ActiveSheetView.Cells(0, 0).CellType = cmbbx
    FpSpread1.ActiveSheetView.Cells(0, 0).Value = 1
  End Sub

-------------------------
クライアント側スクリプト
-------------------------
  <script language="javascript">
    function onMyButtonClick()
    {
      var spread = document.getElementById('FpSpread1');
      spread.CallBack("test");      
    }
  </script>

-------------------------
HTML
 ※スクリプトテスト用のHTMLボタン
-------------------------
<input id="Button1" style="z-index: 102; left: 448px; position: absolute; top: 72px" type="button" value="button" onclick="onMyButtonClick();" />
回避方法
2007/09/05版で修正済み。

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

HTML Selectを使用したカスタムセル型クラスを作成してご対応ください。

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

    Dim cbstr As String()
    cbstr = New String() {"あ", "い", "う", "え", "お"}
    Dim cmbbx As New FarPoint.Web.Spread.ComboBoxCellType(cbstr)
    cmbbx.ShowButton = True
    FpSpread1.ActiveSheetView.Cells(0, 0).CellType = cmbbx
    FpSpread1.ActiveSheetView.Cells(0, 0).Value = 1

    Dim mycmbbx As New MyCombo
    mycmbbx.Items = cbstr
    FpSpread1.ActiveSheetView.Cells(0, 1).CellType = mycmbbx
    FpSpread1.ActiveSheetView.Cells(0, 1).Value = 1
  End Sub

------------------------------------
カスタムセル型クラス
------------------------------------
<Serializable()> Public Class MyCombo
  Inherits FarPoint.Web.Spread.ComboBoxCellType

  Public Sub New()
    MyBase.New()
    Me.ShowButton = True
  End Sub

  Public Overrides Function PaintCell(ByVal id As String, ByVal parent As System.Web.UI.WebControls.TableCell, ByVal style As FarPoint.Web.Spread.Appearance, ByVal margin As FarPoint.Web.Spread.Inset, ByVal value As Object, ByVal upperLevel As Boolean) As System.Web.UI.Control
    Dim cb As New HtmlSelect
    cb.Style.Item("Width") = "100%"
    cb.Attributes.Add("tabIndex", "-1")
    Dim i As Int32
    For i = 0 To Me.Items.Length - 1
      cb.Items.Add(Me.Items(i))
    Next
    cb.Value = CStr(value)
    Return cb
  End Function
End Class
キーワード
SPRN05977

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