【セル型】 ハイパーリンクでウィンドウを表示し、そのサイズを制御したい
対象製品
SPREAD for ASP.NET 7.0J
詳細
メモ
HyperLinkCellTypeクラスを継承するカスタムセル型を作成することで可能です。
◎サンプルコード(VB)
◎サンプルコード(C#)
- 既存のセル型を継承しカスタムセルを作成する場合、不具合修正や内部仕様の変更により動作が変わる可能性があります。
HyperLinkCellTypeクラスを継承するカスタムセル型を作成することで可能です。
◎サンプルコード(VB)
------------------------
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 hc As New MyHyperLinkCell
hc.NavigateUrl = "http://www.grapecity.com/tools/"
FpSpread1.Sheets(0).Cells(0, 0).CellType = hc
''デザイン関連
FpSpread1.Sheets(0).Columns(0).Font.Size = FontUnit.XSmall
FpSpread1.Sheets(0).Columns(0).Width = 200
End Sub
------------------------
カスタムセル型クラス
------------------------
<Serializable()> Public Class MyHyperLinkCell
Inherits FarPoint.Web.Spread.HyperLinkCellType
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 link As WebControl = CType(MyBase.PaintCell(id, parent, style, margin, value, upperLevel), WebControl)
Dim sscript As String = "javascript:window.open('" + Me.NavigateUrl + "','_blank', 'width=500,height = 50') return false"
link.Attributes.Add("onclick", sscript)
Return link
End Function
End Class
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 hc As New MyHyperLinkCell
hc.NavigateUrl = "http://www.grapecity.com/tools/"
FpSpread1.Sheets(0).Cells(0, 0).CellType = hc
''デザイン関連
FpSpread1.Sheets(0).Columns(0).Font.Size = FontUnit.XSmall
FpSpread1.Sheets(0).Columns(0).Width = 200
End Sub
------------------------
カスタムセル型クラス
------------------------
<Serializable()> Public Class MyHyperLinkCell
Inherits FarPoint.Web.Spread.HyperLinkCellType
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 link As WebControl = CType(MyBase.PaintCell(id, parent, style, margin, value, upperLevel), WebControl)
Dim sscript As String = "javascript:window.open('" + Me.NavigateUrl + "','_blank', 'width=500,height = 50') return false"
link.Attributes.Add("onclick", sscript)
Return link
End Function
End Class
◎サンプルコード(C#)
------------------------
Webフォームクラス
------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
MyHyperLinkCell hc = new MyHyperLinkCell();
hc.NavigateUrl = "http://www.grapecity.com/tools/";
FpSpread1.Sheets[0].Cells[0, 0].CellType = hc;
//'デザイン関連
FpSpread1.Sheets[0].Columns[0].Font.Size = FontUnit.XSmall;
FpSpread1.Sheets[0].Columns[0].Width = 200;
}
------------------------
カスタムセル型クラス
------------------------
[Serializable()]
public class MyHyperLinkCell : FarPoint.Web.Spread.HyperLinkCellType
{
public override System.Web.UI.Control PaintCell(string id, System.Web.UI.WebControls.TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel)
{
WebControl link = (WebControl)base.PaintCell(id, parent, style, margin, value, upperLevel);
string sscript = "javascript:window.open('" + this.NavigateUrl + "','_blank', 'width=500,height = 50') return false";
link.Attributes.Add("onclick", sscript);
return link;
}
}
Webフォームクラス
------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
MyHyperLinkCell hc = new MyHyperLinkCell();
hc.NavigateUrl = "http://www.grapecity.com/tools/";
FpSpread1.Sheets[0].Cells[0, 0].CellType = hc;
//'デザイン関連
FpSpread1.Sheets[0].Columns[0].Font.Size = FontUnit.XSmall;
FpSpread1.Sheets[0].Columns[0].Width = 200;
}
------------------------
カスタムセル型クラス
------------------------
[Serializable()]
public class MyHyperLinkCell : FarPoint.Web.Spread.HyperLinkCellType
{
public override System.Web.UI.Control PaintCell(string id, System.Web.UI.WebControls.TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel)
{
WebControl link = (WebControl)base.PaintCell(id, parent, style, margin, value, upperLevel);
string sscript = "javascript:window.open('" + this.NavigateUrl + "','_blank', 'width=500,height = 50') return false";
link.Attributes.Add("onclick", sscript);
return link;
}
}