コンボボックス型セルで選択された要素のValues値を取得する方法
対象製品
SPREAD for ASP.NET 7.0J
詳細
コンボボックス型セルのUseValue プロパティをTrueに設定することで、サーバー側(UpdateCommand イベントのイベント引数「e.EditValues」)やクライアント側でコンボボックス型セルで選択された要素のValues値を取得することができます。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(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 cb As New FarPoint.Web.Spread.ComboBoxCellType(New String() {"AAA", "BBB", "CCC"}, New String() {"A", "B", "C"})
cb.UseValue = True
FpSpread1.ActiveSheetView.Columns(1).CellType = cb
End Sub
Protected Sub FpSpread1_UpdateCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.UpdateCommand
If Not Object.ReferenceEquals(e.EditValues(1), FarPoint.Web.Spread.FpSpread.Unchanged) Then
FpSpread1.ActiveSheetView.Cells(CInt(e.CommandArgument), 2).Value = e.EditValues(1)
End If
End Sub
--------------------------------------------------
クライアント側スクリプト
--------------------------------------------------
<script type="text/javascript">
window.onload = init;
function init() {
var spread = document.getElementById("FpSpread1");
if (spread.addEventListener) {
spread.addEventListener("DataChanged", dataChanged, false);
} else {
spread.onDataChanged = dataChanged;
}
}
function dataChanged(e) {
var e = e || window.event;
var spread = document.getElementById("FpSpread1");
// A1セルに変更した値を設定します
spread.SetValue(0, 0, e.cellValue, true);
}
</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
Dim cb As New FarPoint.Web.Spread.ComboBoxCellType(New String() {"AAA", "BBB", "CCC"}, New String() {"A", "B", "C"})
cb.UseValue = True
FpSpread1.ActiveSheetView.Columns(1).CellType = cb
End Sub
Protected Sub FpSpread1_UpdateCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.UpdateCommand
If Not Object.ReferenceEquals(e.EditValues(1), FarPoint.Web.Spread.FpSpread.Unchanged) Then
FpSpread1.ActiveSheetView.Cells(CInt(e.CommandArgument), 2).Value = e.EditValues(1)
End If
End Sub
--------------------------------------------------
クライアント側スクリプト
--------------------------------------------------
<script type="text/javascript">
window.onload = init;
function init() {
var spread = document.getElementById("FpSpread1");
if (spread.addEventListener) {
spread.addEventListener("DataChanged", dataChanged, false);
} else {
spread.onDataChanged = dataChanged;
}
}
function dataChanged(e) {
var e = e || window.event;
var spread = document.getElementById("FpSpread1");
// A1セルに変更した値を設定します
spread.SetValue(0, 0, e.cellValue, true);
}
</script>
◎サンプルコード(C#)
--------------------------------------------------
Webフォームクラス
--------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
FarPoint.Web.Spread.ComboBoxCellType cb = new FarPoint.Web.Spread.ComboBoxCellType(new string[] { "AAA", "BBB", "CCC" }, new string[] { "A", "B", "C" });
cb.UseValue = true;
FpSpread1.ActiveSheetView.Columns[1].CellType = cb;
}
protected void FpSpread1_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
if (!Object.ReferenceEquals(e.EditValues[1], FarPoint.Web.Spread.FpSpread.Unchanged))
{
FpSpread1.ActiveSheetView.Cells[(int)e.CommandArgument, 2].Value = e.EditValues[1];
}
}
--------------------------------------------------
クライアント側スクリプト
--------------------------------------------------
VBサンプルコードと同じです
Webフォームクラス
--------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
return;
}
FarPoint.Web.Spread.ComboBoxCellType cb = new FarPoint.Web.Spread.ComboBoxCellType(new string[] { "AAA", "BBB", "CCC" }, new string[] { "A", "B", "C" });
cb.UseValue = true;
FpSpread1.ActiveSheetView.Columns[1].CellType = cb;
}
protected void FpSpread1_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
if (!Object.ReferenceEquals(e.EditValues[1], FarPoint.Web.Spread.FpSpread.Unchanged))
{
FpSpread1.ActiveSheetView.Cells[(int)e.CommandArgument, 2].Value = e.EditValues[1];
}
}
--------------------------------------------------
クライアント側スクリプト
--------------------------------------------------
VBサンプルコードと同じです
キーワード
セル型 クライアント側スクリプト