- - PR -
Datagridの列の値を取得して、別Windowで表示する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-02 14:30
いつもお世話になっています。
ASP.NETでC#を使って開発をしようとしているのですが、javascripとの組み合わせについての質問です。 datagridの中で、各列のリンク先の値を取って、別ウィンドウで表示させようとしています。 その際、javascriptでidを変数として渡したいのです。 色々と試したのですが、どうも上手くいきません。 下記のソースでは、idを変数として扱おうとしています。 渡す側のソース(上手くいかなかったソース)
受ける側のソース
よろしくお願いします。 | ||||||||
|
投稿日時: 2005-09-02 15:15
HTMLソースを見ていただければわかるのですが、DataGridの各行におけるコントロールのクライアントIDは、ASP.NETによって自動的に与えられます。
DataGridはブラウザ上では<table>タグに変換されていますから、上記のクライアントIDで探せば、javascriptで値が取れるはずです。 しかし、今回の場合は、各行にリンクボタンのようなものがあるようですので、DataGridの各行がデータバウンドする際に、idを含めた形でリンク先のURLをセットしてあげれば、実現できるような気がします。 | ||||||||
|
投稿日時: 2005-09-02 15:29
trapemiyaさん、早速の返答、ありがとうございます。
上記のコードは、DataGridの"OnItemDataBound"のコマンドの中に入れてます。 なので、idの値は取得できています。 ただ、取得した値とリンク先のURLを結合する仕方が分からなくて苦労してます。 (↑この部分をもっと明確に書いておくべきでした・・・) Ref.Attributes["onclick"] = "window.open('past_item.aspx?id='<% id %>,'new', 'width=800,height=200');"; などとして、ヒモ付けしようとしたのですが、失敗しまいます。 と書くと文字列として認識されてしまいますし、 VBを用いた解決策はいくつか見つけたのですが、同じようにはできませんでした・・・。 | ||||||||
|
投稿日時: 2005-09-02 17:33
>上記のコードは、DataGridの"OnItemDataBound"のコマンドの中に入れてます。
>なので、idの値は取得できています。 すみません。ですね。(^^; Ref.Attributes["onclick"] = "window.open('past_item.aspx?id='" + Server.UrlEncode(id) + "','new', 'width=800,height=200');"; で、いいんじゃないでしょうか? | ||||||||
|
投稿日時: 2005-09-02 23:55
>trapemiyaさん
できました! こうやって文字列を結合すれば良かったですね! いい勉強になりました! ありがとうございましたm(_ _)m |
1