- PR -

Client側でSpread内の再計算する方法

1
投稿者投稿内容
M太郎
会議室デビュー日: 2007/04/12
投稿数: 6
投稿日時: 2007-06-06 09:19
いつもお世話になっております。
ASP.NET C# SPREAD_web2.0 で開発しております。
SPREADでColumns[0]にチェックボックスCellTypeを配置して
Checkedの場合にColumns[x]の数値項目を再計算する方法を
模索しております。Server側で行う方法はできるのですが、
Client側でJavaScriptを使用して再計算したいのですが、SPREADは
ボタンのようなOnClickイベントをもっていないので、チェック時に
隠しボタンをキックさせる?ような方法も考えたのですが実装で
つまずきまくっております。同じような処理を検索したのですが
なかなか見つかりません。ご存知でしたらご教唆願えないでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-06 09:29
引用:

M太郎さんの書き込み (2007-06-06 09:19) より:

ASP.NET C# SPREAD_web2.0 で開発しております。


"SPREAD_web2.0" とは何のことでしょうか? Spread for .NET Web 2.0 のことでしょうか? それとも SPREAD for .NET 2.0J Web Edition のことでしょうか?

HTML は HTML ですから、クライアント側で何かをしたいのであれば、HTML ソースをまず見ておくことをお勧めします。ActiveX か何かであればまた話は変わりますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
M太郎
会議室デビュー日: 2007/04/12
投稿数: 6
投稿日時: 2007-06-06 12:57
じゃんぬねっとさんありがとうございます。
正確に書かずに申し訳ありません。
Spread for .NET Web 2.0を使用しております。

そうですね、ActiveXではないのでHTMLソースを解析してみます。

で、素朴な疑問なんですが、SpreadというのはObjectでボタンのような
onclickプロパティを持っていないようなんですが、特定のセルの値(CheckBox)
が変更されたかはServer側でGetEditValueとFarPoint.Web.Spread.FpSpread.Unchanged
の比較で取得できるので処理できます。が、Client側の処理としてSpreadのCheckBoxがCheckedになった時点で同じRowの特定Cellの値を計算させたい場合、たぶんJavaScript
になるかと思いますが、SpreadのCheckBoxの「ON/OFF」をonclickのようなアクションで拾うことができずにいます。たとえばSpreadのCheckBoxの値が変更された時点で隠しボタンをキックして計算実行するようなJavaScriptであれば何とかなりそうな気がしてますが、ClientでSpreadのCheckBoxの変更を拾えないので、解決できずにいます。
とにかくまずHTMLから探ってみます。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2007-06-06 14:11
おそらくSpread内のチェックボックスは規則的なIDもしくはNAMEが指定されていると思います。
それらの命名規則をもとに以下のようなスクリプトでイベントを動的に追加してはいかがでしょうか?

コード:
<html>
<head>
<script language="javascript">
	window.onload = function onLoad() {
		for (i = 0 ; i < document.forms[0].elements.length ; i++) {
			if (document.forms[0].elements[i].type == "checkbox") {
				document.forms[0].elements[i].onclick = CheckBoxChanged;
			}
		}
	}
	
	function CheckBoxChanged() {
		var sender = window.event.srcElement;
		alert(sender.id + " " + sender.checked);
	}
</script>
</head>
<body>
<form>
	<input type="checkbox" id="checkbox1" name="example1" value="sample1">sample1<br>
	<INPUT type="CHECKBOX" id="checkbox2" name="example2" value="sample2">sample2<br>
	<table>
		<tr>
			<td><input type="checkbox" id="checkbox3" name="example3" value="sample3">sample3<br></td>
		</tr>
	</table>
</form>
</body>
</html>

1

スキルアップ/キャリアアップ(JOB@IT)