- - PR -
DataGridのCheckBox(テンプレート)について
1|2|3
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-05 12:45
はじめまして、C#.NETにてWEBアプリを作成しています。
(初心者です) DataGridのテンプレートを用いてCheckBoxを貼り付け グリッドでチェックされた行の値(氏名など)を送信するプログラムを考えています。 cs側では以下のように作成できました。 //////////////////// private void クリックイベント(object sender, System.EventArgs e) { for(int i = 0; i < DataGrid1.Items.Count; i++) { CheckBox tt = (CheckBox)DataGrid1.Items[i].Cells[0].Controls[1]; if(tt.Checked) { test_label.Text += DataGrid1.Item[i].Cells[5].Text + ","; }}} /////////////////// 以上のコードでやりたいことはできたのですが、 これを”hidden”を用いて別ページに送信するためにJavaScript側で同様のコードを書きたいのです。 for文内で document.Form1.DataGrid1.Items.Countのように記述してもエラーが出てしまいます。 (Nullまたは、オブジェクトではありませんと) どのような記述をすれば同様の事を実現できるのでしょうか? 宜しくお願いいたします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2004-02-05 12:45 ] |
|
投稿日時: 2004-02-05 13:33
document.Form1.DataGrid1.Items.Count
などとやってもJavaScriptでDataGridを参照することはできません。 DataGridはあくまで「サーバコントロール」ですので クライアント側ではテーブルとなっているはずです。 一回、ブラウザに出力された「データグリッドを含むページ」のソースを確認してみてください。 そうすれば自ずと解決方法が見えてくると思います。 |
|
投稿日時: 2004-02-05 14:05
お返事ありがとうございました。
仰る通りでした。 IDを確認すると、「DataGrid1__ctl2_Select_line」〜「DataGrid1__ctl10_Select_line」 のようになっていますが、このIDを自分で決めることは可能でしょうか。 (出来ない場合、FOR文で回す際にどのように指定すればよいでしょうか?) わからないことだらけで勉強しろ!っと仰りたいでしょうが 宜しくお願いいたします。 |
|
投稿日時: 2004-02-05 14:24
そのIDを決めるのは不可能だったと思います。
だた、そのIDのつけ方は規則的に決まっているので、forではなくWhileで回してみるのもありかと。 string変数にIDをいれ、(たとえば変数名をstrIDとして) document.getElementById(strID) != nullで識別してみるとか forではないですが、これならWhileでまわせると思います。 |
|
投稿日時: 2004-02-05 14:58
ありがとうございます。
早速試したのですが、 strID = "document.Form1.DataGrid1__ctl2_Select_line"; document.getElementById(strID); ではnullが返ってきてしまいました。 また、 document.getElementById("DataGrid1__ctl2_Select_line"); では値を得ることが可能でした。 前者が不可能であるとWhile文等で回すことは不可能でしょうか? わからずやで済みません。 宜しくお願いいたします。 [ メッセージ編集済み 編集者: BB.NK 編集日時 2004-02-05 15:00 ] |
|
投稿日時: 2004-02-05 15:10
document.Form1がいらないですね。。。
調べ不足もほどほどにってことですね。 ありがとうございました。 できました。 今回のようにJavascriptでidを拾う場合は、 実行してソースを見る方法が正しいのでしょうか? 今後とも宜しくお願いいたします。 [ メッセージ編集済み 編集者: BB.NK 編集日時 2004-02-05 15:11 ] |
|
投稿日時: 2004-02-05 15:33
迷惑ついでにもう一つ質問です。
最初に書きました通り、チェックされた行の値を"hidden"で飛ばすのですが、 肝心のチェックされた行の値が取ってこれません。 先ほどのアドバイスを元にソースを見ると、 <td nowrap="nowrap">123</td><td nowrap="nowrap">テスト</td> といった具合でどうやって取得するかわかりません。 どのようにしたらよいでしょうか? |
|
投稿日時: 2004-02-05 15:46
>今回のようにJavascriptでidを拾う場合は、
>実行してソースを見る方法が正しいのでしょうか? 通常は (CheckBox)DataGrid1.Items[i].Cells[0].Controls[1].ClientIDでIDがわかるので そのIDを使ってサーバ側でJAVAスプリクトを生成して出力します。 ><td nowrap="nowrap">123</td><td nowrap="nowrap">テスト</td> このままだと取得できないと思うので値を設定する列もテンプレートにしてTextBoxを ReadOnlyで設定する必要があります。 あとボタンクリック時にhiddenに値を設定するならJAVAスプリクトじゃなくても 大丈夫ですよ。もし違うタイミングだったらすみません。 |
1|2|3
次のページへ»