- PR -

JavascriptでGridの値がうまく取れない

投稿者投稿内容
fruity
常連さん
会議室デビュー日: 2006/10/26
投稿数: 32
投稿日時: 2007-04-20 15:01
.Net2005を使用しています。

JavaScript初心者です。
宜しくお願いします。

gridの値を取得して列ごとに計算したいと思っています。
イメージは 数量 * 単価 = 金額です。
1stStepとして数量が変わったら金額を計算しようと思ってます。
ですが、NaNやundefinedがでてうまくいきません。

以下、Javascript追加及びscriptのソースです。
<VB>
txtQuantity.Attributes.Add("onKeyUp", "javascript:QuantityChange(" & txtQuantity.NamingContainer.ClientID & "_txtQuantity," & lblUnitPrice.NamingContainer.ClientID & "_lblUnitPrice," & txtAmount.NamingContainer.ClientID & "_txtAmount)")

<javascript>
function QuantityChange(field,field2,field3) {

var s = FormatCurDel(parseInt(field2.value));
var p = (parseInt(field.value)) * s;
field3.value = p;
return true;
}

試しにラベルのアラートを出してもundefinedになってしまいました。
<VB>
txtQuantity.Attributes.Add("onKeyUp", "javascript:alart_test(" & lblUnitPrice.NamingContainer.ClientID & "_lblUnitPrice)")

<javascript>
function alart_test(field){
 if(confirm(field.value) == false) {
  return false;
}
return true;
}

凄い基本的な事かもしれませんがご教授下さい。

[ メッセージ編集済み 編集者: fruity 編集日時 2007-04-20 15:03 ]

[ メッセージ編集済み 編集者: fruity 編集日時 2007-04-20 15:04 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-04-20 15:15
Javascript で悩んだときはまずは静的な HTML で動作を確認するのがよいと思います。
二つ目の例を見ると関数にわたっているのは コントロール ではなく ただの文字列のように見えます。
_________________
かるあ のメモスニペット
fruity
常連さん
会議室デビュー日: 2006/10/26
投稿数: 32
投稿日時: 2007-04-20 16:26
かるあさん
有難うございます

HTMLソースは以下のようになっています。

<input name="dtgPaymentDetails$ctl02$txtQuantity" type="text" value="8" id="dtgPaymentDetails_ctl02_txtQuantity"
onKeyUp="javascript:alart_test(dtgPaymentDetails_ctl02_lblUnitPrice)" />

これでは取れないですか?

また、静的に動かす良い方法をご教授いただけますと幸いです。
(何から何まですいませんm(_ _)m)
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-04-20 16:42
これって、ブラウザで入力されたタイミングで「数量 * 単価 = 金額」の計算を行ないたいということですよね?

であれば、HTML と JavaScript の世界の話なので、メモ帳なり何なりで簡単なサンプルを作成して、動作確認してみては。
というのが、かるあさんの言われている静的な確認だと思いますよ。

GridView とはいえ、クライアントに出力されるのは TABLE ですから。

まずは、そこからではないでしょうか。
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2007-04-20 16:42
静的に動かすとは、HTMLを作成し動作させれば良いのです。

以下が参考になると思います。
とほほのWWW入門
fruity
常連さん
会議室デビュー日: 2006/10/26
投稿数: 32
投稿日時: 2007-04-20 17:11
ひろれいさん、マーサさん
有難うございます。

labelをみたところ、htmlではspanになっていました。
なんとも初歩的ですいません。
<span>1000</span>のような感じです。
一生懸命この1000を取ろうとしていたわけです。
取れるはずない・・

inputだとうまくいきました。
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2007-04-20 17:23
innerHTMLを使用すればIE6(Win2k)ではspanタグ内部にかかれた文字列が
取得できるようです。

コード:
<html>
	<head>
		<title>テスト</title>
		<script type="text/javascript">
		<!--
			function funcTest(){
				alert(document.all.sp1.innerHTML);
			}

		// -->
		</script>
	</head>
	<body>
		<span id="sp1">AaaaaBC</span>
		<input type="button" value="Click!" onClick="funcTest();">
	</body>
</html>

fruity
常連さん
会議室デビュー日: 2006/10/26
投稿数: 32
投稿日時: 2007-04-20 17:27
Katzeさん

「innerHTML」勉強になります。

早速試してみようと思います。
有難うございます。

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