- - PR -
グリッド内でのクライアントスクリプトによる計算
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-29 19:34
いつもお世話になってます。
ASP.NET、C#2.0で開発してます。 GridView内のJavascriptについて質問です。 ・テンプレート列A=ASPのTextBox ・テンプレート列B=ASPのLabel ・テンプレート列C=ASPのLabel 上記、列A、列B、列Cとあり、A+B=Cとなっていた場合、 で、列Aに値を入れて、フォーカスが外れたときに計算結果を 列Cに代入するという処理を行いたいのですが、ポストバックなしで 実現はできないのでしょうか? 列B、列CのIDが自動生成になってしまう為、どのようにJavaScriptを書けば よいかわからない状態です。 どうぞ、宜しくお願い致します。 | ||||
|
投稿日時: 2006-11-29 21:46
Qさん、こんばんわ。
ブラウザに出力されるHTML要素のIDの取得方法が わかればJavaScriptが書けるのに・・・ というところでしょうか? とりあえず私は2つほど方法を思いつきました。 参考になれば幸いです。 1. Control.ClientIDプロパティを使用して、サーバ側のコードで 動的にJavaScriptコードを作成する。作成したコードを Page.ClientScript.RegisterStartupScriptを使用して 出力する。 2. クライアント側のコードで、window.onloadイベントで 対象のテーブル(GridViewの出力HTML)を走査して、テキストボックスに 動的にイベントを割り当てる。IDはgetElementsByTagNameなどを 使用してその処理の際に取得する。 | ||||
|
投稿日時: 2006-12-01 13:01
いしいさん、ありがとうございます。
お返事遅くなりましたが、ClientIDプロパティを使用したところ、 行合計は実現できました!! 助かりました。 getElementsByTagNameについても、列合計などで応用できそうなので これまた助かりました。 ただ、getElementsByTagNameだと、チェックボックスONの行のみの 列合計といった、条件つきができないみたいですね。 まだ、調査中ですが、いい案があれば宜しくお願いします。 | ||||
|
投稿日時: 2006-12-02 14:02
そうですね。いったん取得した要素の配列をfor文で走査して、チェックされたもののみを抽出するという処理が必要になると思います。 |
1