作成日: 2017/03/29 最終更新日: 2017/03/29
文書種別
使用方法
詳細
製品で提供されるButtonCellTypeはonClickイベントでポストバックし、サーバー側でButtonCommandイベントを発生させます。
クライアント側でも処理を実行したい場合は、ButtonCellTypeのOnClientClickプロパティを使用します。
ここではOnClientClickプロパティを使用した3パターンの動作を紹介します。
1.Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
2.Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
3.クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
◎サンプルコード(VB)
◎サンプルコード(C#)
クライアント側でも処理を実行したい場合は、ButtonCellTypeのOnClientClickプロパティを使用します。
ここではOnClientClickプロパティを使用した3パターンの動作を紹介します。
1.Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
2.Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
3.クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
◎サンプルコード(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
' Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
Dim bc1 As New FarPoint.Web.Spread.ButtonCellType
bc1.Text = "Button1"
bc1.OnClientClick = "onMyButtonClick();return false;"
FpSpread1.Sheets(0).Cells(0, 0).CellType = bc1
' Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
Dim bc2 As New FarPoint.Web.Spread.ButtonCellType
bc2.Text = "Button2"
bc2.OnClientClick = "onMyButtonClick();";
bc2.CommandName = "I'm btn2"
FpSpread1.Sheets(0).Cells(1, 0).CellType = bc2
' クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
Dim bc3 As New FarPoint.Web.Spread.ButtonCellType
bc3.Text = "Button3"
bc3.OnClientClick = "javascript:if(confirm('ポストバックしますか?') == false){return false};"
bc3.CommandName = "I'm btn3"
FpSpread1.Sheets(0).Cells(2, 0).CellType = bc3
End Sub
Protected Sub FpSpread1_ButtonCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.ButtonCommand
If e.CommandName = "I'm btn2" Then
'クリックされたボタンの位置を取得
Dim cell As System.Drawing.Point = CType(e.CommandArgument, System.Drawing.Point)
e.SheetView.Rows(cell.X).ForeColor = Drawing.Color.Red '押されたボタンの行で文字色を変更
End If
End Sub
-------------------------------
クライアント側スクリプト
-------------------------------
<script type="text/javascript">
function onMyButtonClick(){
alert("Button Click !");
}
</script>
Webフォームクラス
-------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
' Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
Dim bc1 As New FarPoint.Web.Spread.ButtonCellType
bc1.Text = "Button1"
bc1.OnClientClick = "onMyButtonClick();return false;"
FpSpread1.Sheets(0).Cells(0, 0).CellType = bc1
' Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
Dim bc2 As New FarPoint.Web.Spread.ButtonCellType
bc2.Text = "Button2"
bc2.OnClientClick = "onMyButtonClick();";
bc2.CommandName = "I'm btn2"
FpSpread1.Sheets(0).Cells(1, 0).CellType = bc2
' クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
Dim bc3 As New FarPoint.Web.Spread.ButtonCellType
bc3.Text = "Button3"
bc3.OnClientClick = "javascript:if(confirm('ポストバックしますか?') == false){return false};"
bc3.CommandName = "I'm btn3"
FpSpread1.Sheets(0).Cells(2, 0).CellType = bc3
End Sub
Protected Sub FpSpread1_ButtonCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.ButtonCommand
If e.CommandName = "I'm btn2" Then
'クリックされたボタンの位置を取得
Dim cell As System.Drawing.Point = CType(e.CommandArgument, System.Drawing.Point)
e.SheetView.Rows(cell.X).ForeColor = Drawing.Color.Red '押されたボタンの行で文字色を変更
End If
End Sub
-------------------------------
クライアント側スクリプト
-------------------------------
<script type="text/javascript">
function onMyButtonClick(){
alert("Button Click !");
}
</script>
◎サンプルコード(C#)
-------------------------------
Webフォームクラス
-------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
// Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
FarPoint.Web.Spread.ButtonCellType bc1 = new FarPoint.Web.Spread.ButtonCellType();
bc1.Text = "Button1";
bc1.OnClientClick = "onMyButtonClick();return false;";
FpSpread1.Sheets[0].Cells[0, 0].CellType = bc1;
// Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
FarPoint.Web.Spread.ButtonCellType bc2 = new FarPoint.Web.Spread.ButtonCellType();
bc2.Text = "Button2";
bc2.OnClientClick = "onMyButtonClick();";
bc2.CommandName = "I'm btn2";
FpSpread1.Sheets[0].Cells[1, 0].CellType = bc2;
// クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
FarPoint.Web.Spread.ButtonCellType bc3 = new FarPoint.Web.Spread.ButtonCellType();
bc3.Text = "Button3";
bc3.OnClientClick = "javascript:if(confirm('ポストバックしますか?') == false){return false};"
bc3.CommandName = "I'm btn3";
FpSpread1.Sheets[0].Cells[2, 0].CellType = bc3;
}
protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
if (e.CommandName == "I'm btn2")
{
//クリックされたボタンの位置を取得
System.Drawing.Point cell = (System.Drawing.Point)e.CommandArgument;
e.SheetView.Rows[cell.X].ForeColor = System.Drawing.Color.Red; //押されたボタンの行で文字色を変更
}
}
-------------------------------
クライアント側スクリプト
-------------------------------
VB.NETのサンプルコードで紹介しているものと同様です。
Webフォームクラス
-------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
// Clickイベントをクライアント側でのみ処理し、サーバー側にポストバックしません。
FarPoint.Web.Spread.ButtonCellType bc1 = new FarPoint.Web.Spread.ButtonCellType();
bc1.Text = "Button1";
bc1.OnClientClick = "onMyButtonClick();return false;";
FpSpread1.Sheets[0].Cells[0, 0].CellType = bc1;
// Clickイベントをまずは、クライアント側で処理し、その後でサーバー側にポストバックしButtonCommandイベントを発生させます。
FarPoint.Web.Spread.ButtonCellType bc2 = new FarPoint.Web.Spread.ButtonCellType();
bc2.Text = "Button2";
bc2.OnClientClick = "onMyButtonClick();";
bc2.CommandName = "I'm btn2";
FpSpread1.Sheets[0].Cells[1, 0].CellType = bc2;
// クライアント側で確認メッセージを出力し、確認結果がOKの場合、サーバー側にポストバックしButtonCommandイベントを発生させます。
FarPoint.Web.Spread.ButtonCellType bc3 = new FarPoint.Web.Spread.ButtonCellType();
bc3.Text = "Button3";
bc3.OnClientClick = "javascript:if(confirm('ポストバックしますか?') == false){return false};"
bc3.CommandName = "I'm btn3";
FpSpread1.Sheets[0].Cells[2, 0].CellType = bc3;
}
protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
if (e.CommandName == "I'm btn2")
{
//クリックされたボタンの位置を取得
System.Drawing.Point cell = (System.Drawing.Point)e.CommandArgument;
e.SheetView.Rows[cell.X].ForeColor = System.Drawing.Color.Red; //押されたボタンの行で文字色を変更
}
}
-------------------------------
クライアント側スクリプト
-------------------------------
VB.NETのサンプルコードで紹介しているものと同様です。
旧文書番号
40231