【セル型】 ボタン型セルの利用時、セルや列のMarginプロパティの設定が有効にならない

文書番号 : 38182     文書種別 : 不具合     登録日 : 2015/02/27     最終更新日 : 2015/03/31
文書を印刷する
対象製品
SPREAD for ASP.NET 7.0J
状況
修正済み
詳細
ボタン型セルの利用時、セルや列のMarginプロパティの設定が有効になりません。この現象はButtonTypeがLinkButtonタイプおよびImageButtonタイプの時に発生します。なお、ButtonTypeがPushButtonの場合にMarginが有効にならないのは仕様に基づく動作です。


【再現手順】
1.新規WebフォームにSPREADひとつを配置します
2.下記の再現コードを貼り付け、Web フォームを起動します
--- コードで設定したMarginが有効になりません

【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Public Class WebForm1
  Inherits System.Web.UI.Page
  Protected Sub Page_Load(sender As Object, e As EventArgs)
    If Page.IsPostBack Then
      Return
    End If
    FpSpread1.DocumentMode = FarPoint.Web.Spread.DocumentMode.IE7

    Dim lb As New FarPoint.Web.Spread.ButtonCellType()
    lb.CommandName = "OneCommand"
    lb.ButtonType = FarPoint.Web.Spread.ButtonType.LinkButton
    lb.Text = "abc"
    FpSpread1.ActiveSheetView.Columns(0).CellType = lb
    FpSpread1.ActiveSheetView.Columns(0).Margin = New FarPoint.Web.Spread.Inset(10, 0, 10, 0)
  End Sub
End Class

------------------------------------
webform1.aspxファイル
------------------------------------
<head>タグ内に以下のメタ情報を記述してください。

<meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />
回避方法
Service Pack 3(v7.0.4017.2010)で修正済み。
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

cssシートからマージンを設定することで、現象への対応が可能です。

------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If Page.IsPostBack Then
    Return
  End If

  FpSpread1.DocumentMode = FarPoint.Web.Spread.DocumentMode.IE7

  Dim lb As New FarPoint.Web.Spread.ButtonCellType()
  lb.CommandName = "OneCommand"
  lb.ButtonType = FarPoint.Web.Spread.ButtonType.LinkButton
  lb.Text = "abc"
  lb.CssClass = "test2" ' 【回避策】スタイルシートで余白を指定します
  FpSpread1.ActiveSheetView.Columns(0).CellType = lb
  'FpSpread1.ActiveSheetView.Columns(0).Margin = New FarPoint.Web.Spread.Inset(10, 0, 10, 0)
End Sub

------------------------------------
クライアント側スクリプト
------------------------------------
<style type="text/css">
  .test2
  {
    padding: 0px 10px 0px 10px !important;
  }
</style>