C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: グリッドビューのリンクを変更する


(過去ログ 118 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■69139 / inTopicNo.1)  グリッドビューのリンクを変更する
  
□投稿者/ 黒霧島 (1回)-(2013/12/06(Fri) 00:02:05)

分類:[ASP.NET (VB)] 

現在、VBとASPでシステムを開発しています。

そこで1箇所困っている箇所があって質問させていただきます。

DBからデータを取得しグリッドビューに表示しています。その列の一つにHyperLinkFieldを使用しており、クリックするとDBから取得したデータの一つをパラメータに持たせて画面遷移したいと考えています。デザイナーからDataNavigateUrlFormatStringにurlを設定した場合、思っていた通りの動作をすることが出来ました。しかし、遷移したいと思っている画面は一つではなく、画面のコントールで切り替えたいと考えています。しかしDataNavigateUrlFormatStringをプログラムから変更する方法が調べてみても、見つかりませんでした。
もし、DataNavigateUrlFormatStringをプログラムから変更する方法をご存知のかたがおられましたら教えていただきたいと思います。
また、別の方法があればそちらも大歓迎です。

よろしくお願いします。
引用返信 編集キー/
■69140 / inTopicNo.2)  Re[1]: グリッドビューのリンクを変更する
□投稿者/ WebSurfer (100回)-(2013/12/06(Fri) 00:42:55)
No69139 (黒霧島 さん) に返信
> 画面のコントールで切り替えたいと考えています。

そこを具体的(あくまでも具体的に・・・即ち、掲示板の反対側にいて、掲示板に書
いてあること以外に、何も知りえない回答者に分かるように)どういうタイミングで、
どこから URL を取得して、HuperLink に設定したいのか書いてください。
引用返信 編集キー/
■69142 / inTopicNo.3)  Re[2]: グリッドビューのリンクを変更する
□投稿者/ 黒霧島 (2回)-(2013/12/06(Fri) 02:42:35)
No69140 (WebSurfer さん) に返信
> ■No69139 (黒霧島 さん) に返信
>>画面のコントールで切り替えたいと考えています。
>
> そこを具体的(あくまでも具体的に・・・即ち、掲示板の反対側にいて、掲示板に書
> いてあること以外に、何も知りえない回答者に分かるように)どういうタイミングで、
> どこから URL を取得して、HuperLink に設定したいのか書いてください。

返信ありがとうございます。

URLは定数として予め宣言しておき、画面に設置してあるドロップダウンリストの値を変更するとリンク先が変更されるようにしたいと考えています。ようするにドロップダウンの変更イベントかロード時のイベントでリンク先を変更させたいということです。
引用返信 編集キー/
■69143 / inTopicNo.4)  Re[3]: グリッドビューのリンクを変更する
□投稿者/ WebSurfer (102回)-(2013/12/06(Fri) 04:07:23)
No69142 (黒霧島 さん) に返信
> URLは定数として予め宣言しておき、画面に設置してあるドロップダウンリストの値を変更するとリンク先が変更されるようにしたいと考えています。ようするにドロップダウンの変更イベントかロード時のイベントでリンク先を変更させたいということです。

依然として意味不明です。ご自分ではそれが分からないのかもしれませんが・・・
引用返信 編集キー/
■69144 / inTopicNo.5)  Re[4]: グリッドビューのリンクを変更する
□投稿者/ 黒霧島 (3回)-(2013/12/06(Fri) 07:47:17)
No69143 (WebSurfer さん) に返信
> ■No69142 (黒霧島 さん) に返信
>>URLは定数として予め宣言しておき、画面に設置してあるドロップダウンリストの値を変更するとリンク先が変更されるようにしたいと考えています。ようするにドロップダウンの変更イベントかロード時のイベントでリンク先を変更させたいということです。
>
> 依然として意味不明です。ご自分ではそれが分からないのかもしれませんが・・・

結局私が知りたいのはグリッドビューのHyperLinkFieldのDataNavigateUrlFormatStringをVB側から変更する方法です。
引用返信 編集キー/
■69150 / inTopicNo.6)  Re[5]: グリッドビューのリンクを変更する
□投稿者/ an (7回)-(2013/12/06(Fri) 11:05:38)
No69144 (黒霧島 さん) に返信

> URLは定数として予め宣言しておき、画面に設置してあるドロップダウンリストの値を変更するとリンク先が変更されるようにしたいと考えています。ようするにドロップダウンの変更イベントかロード時のイベントでリンク先を変更させたいということです。

> 結局私が知りたいのはグリッドビューのHyperLinkFieldのDataNavigateUrlFormatStringをVB側から変更する方法です。



DataNavigateUrlFormatStringを変更する方法は

 対象のオブジェクト.DataNavigateUrlFormatString = "〜〜URL〜〜"(または定数)

でできると思うので、これに困っているわけではないですよね?


推測するに対象のオブジェクトの取得に困っているのではないでしょうか?
もしそうであれば、ドロップダウンの変更イベントで、

 対象のグリッドビューのItemsプロパティでループ
→各行のItemを取得(DataGridItemクラス)
→ItemのCellsプロパティより対象の列のItem取得(TableCellクラス)
→取得したItem(TableCellクラス)をDataControlFieldCellクラスにキャスト
→キャストしたオブジェクトのContainingField(DataControlFieldクラス)をHyperLinkFieldクラスにキャスト
→キャストしたオブジェクトのDataNavigateUrlFormatStringに値を設定

という風に行えないでしょうか?


#環境がないので試していません。
#また昔の情報と開発環境のオブジェクトブラウザを元に書いてますので、間違っているかも・・・?
#そもそも見当違いかもしれませんが・・・

引用返信 編集キー/
■69156 / inTopicNo.7)  Re[5]: グリッドビューのリンクを変更する
□投稿者/ WebSurfer (103回)-(2013/12/06(Fri) 15:23:14)
No69144 (黒霧島 さん) に返信
> ■No69143 (WebSurfer さん) に返信
>>■No69142 (黒霧島 さん) に返信
> >>URLは定数として予め宣言しておき、画面に設置してあるドロップダウンリストの値を変更するとリンク先が変更されるようにしたいと考えています。ようするにドロップダウンの変更イベントかロード時のイベントでリンク先を変更させたいということです。
>>
>>依然として意味不明です。ご自分ではそれが分からないのかもしれませんが・・・
>
> 結局私が知りたいのはグリッドビューのHyperLinkFieldのDataNavigateUrlFormatStringをVB側から変更する方法です。

当方は無駄なことは聞いていません。回答者からの質問には、もっと謙虚に答え
るようにしてはいかがですか?

なぜ、どこから URL を取得して、GridView のどの行の HyperLink に設定する
のか等の詳細が書けないのですか?

こちらが DataNavigateUrlFormatString を書き換える方法を教えても、それが
上記の条件を加味した質問者さんのやりたいこととと合わなければ意味がないの
ですが。


質問者さんの最終目的が果たせるかどうか分かりませんが、書き換えるだけなら、
GridView の HyperLinkField から当該セルに生成されるのは HyperLink コント
ロールなので、DropDownList の SelectedIndexChanged のタイミングで、目的の
セルから HyperLink コントロールを探して、その NavigateUrl プロパティを書
き換えることで可能です。

以下のような感じです。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in OrdersGridView.Rows)
{
foreach (Control control in row.Cells[2].Controls)
{
if (control is HyperLink)
{
HyperLink link = (HyperLink)control;
link.NavigateUrl = "<書き換える URL>";
}
}
}
}
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -