- 題名: ASP.NET2.0でのGridViewの内容の書き換え
- 日時: 2008/10/17 13:59:34
- ID: 23192
- この記事の返信元:
- (なし)
- この記事への返信:
- [23214] Re[1]: ASP.NET2.0でのGridViewの内容の書き換え2008/10/21 11:10:27
- ツリーを表示
ハイパーリンクフィールドなるものを使ったことはありませんが… おそらく以下の方法でいけそうな気もします(テストはしていないので、適宜テストをお願い致します。) 手順1:ハイパーリンクフィールドをテンプレートフィールドに変換して下さい 手順2:GridViewのメニューからテンプレートフィールドの編集を選択して下さい 手順3:ハイパーリンクがHypreLink1という名前でItemTemplateに格納されているはずなので任意のID(hypTestと過程します) 手順4:テキストバインディングを行って下さい( Eval("要素名") で出来ます) 例えば、データセットのLinkURLというカラムの内容をバインドする場合は Eval("LinkURL")です。 手順5:ここから設定です。以下のソースではGridViewをgrdLinkとします。適宜コントロールIDは修正して下さい GridViewにデータをバインドした後に for (int i = 0 ; i < grdLink.Rows.Count ; i ++) { //xxには何列目にリンクがあるかを指定して下さい HyperLink hyp1 = grdLink.Rows[i].Cells[xx].FindControl("hypTest") as HyperLink; //動的に変えるための条件式を指定します(例えばhyp1のテキストがURLの場合) hyp1.Attributer.Add("onclientclick" , "return foo('" + hyp1.Text + "');"); } 上記で例えばハイパーリンクにhttp://dobon.netと記載されていた場合、 そのリンク先はhttp://dobon.netとなるはずです。 他にもif分岐などもございますので、お試し下さい
分類:[ASP.NET]
2008/10/17(Fri) 14:04:13 編集(投稿者)
2008/10/17(Fri) 14:04:09 編集(投稿者)
ASP.NET2.0でGridViewを使っているのですが、
ハイパーリンクの書き換えに詰まってしまいました
通常デザイナーで
HyperLinkFieldを設定し、
NavegateUrl:~/hoge.html
DataNavigateFormatString:~/hoge.html?={0}
とすれば、
データベースを元にリンク先を色々変えられますが、
NavigateUrlにJavaScriptを設定したい場合がうまくいきません
htmlファイルに
foo(hikisuu){
...
}
という関数があって、これを呼びたいのですが
NavigateUrl:Javascript:foo
DataNavigateFormatString:Javascript:foo({0})
してもリンクはJavascript:fooにしかならないです
もう、デザイナーでは空白にしてしまって
page_loadかなんかの内部で書き換えようと思っているのですが
今度は、その書き換え方法がわかりません
GridViewのなかのHyperLinkgFieldのリンク先をプログラムで書き換えるにはどうくんだらいいのでしょうか