- PR -

DataGridのHyperLinkColumnで複数リンク指定

1
投稿者投稿内容
さわでぃー
会議室デビュー日: 2004/02/19
投稿数: 5
投稿日時: 2004-02-19 19:33
セッション変数に遷移してきた画面によってフラグを設定しています。そのフラグを元にDataGridのHyperLinkColumnでそれぞれの画面に対応するリンク先の指定を行いたいのですが可能でしょうか?
よろしくお願いします。。。

<Columns>


<asp:HyperLinkColumn DataNavigateUrlField="Data" DataNavigateUrlFormatString="ABC.aspx?No={0}" DataTextField="Data"
HeaderText="データ" DataTextFormatString="No.{0}">
</Columns>
聖人@SKB
ベテラン
会議室デビュー日: 2003/03/26
投稿数: 58
お住まい・勤務地: 横浜(MM21)勤務の筈だがいつも顧客先常駐
投稿日時: 2004-02-23 13:18
DataGridに割り当てるData列の内容(No)は同一だが、フラグの状態によって
http://xxxx.aspx?No= のxxxx.aspx部分を動的に変更したいのでしたら、
DataGridのDataNavigateUrlFormatStringを変更すれば可能だと思います。

以下はサンプルコードです。

DataTable dt = new DataTable();
DataRow dr;

//テスト用セッションの設定
Session["Flag"] = 3;
//テスト用データの格納
dt.Columns.Add(new DataColumn("Data", typeof(string)));
for(int i=1; i<=5; i++){
 dr = dt.NewRow();
 dr["Data"] = i.ToString();
 dt.Rows.Add(dr);
}

HyperLinkColumn hc = (HyperLinkColumn)DataGrid1.Columns[0];
hc.Target="_blank";
hc.DataNavigateUrlField="Data";
hc.DataTextField="Data";

switch((int)Session["Flag"]){
 case 1:
  hc.DataNavigateUrlFormatString="http://ABC.aspx?No={0}";
  break;

 case 3:
  hc.DataNavigateUrlFormatString="http://DEF.aspx?No={0}";
  break;
}
DataView dv = new DataView(dt);
DataGrid1.DataSource = dv;
DataGrid1.DataBind();

※DataGrid1.Columns[0]はURLを表示するカラムです
※Target、DataNavigateUrlField、DataTextFieldは
 プロパティビルダで設定しても構いません。
※DataNavigateUrlFormatString に関しては以下のURLを参照願います。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuiwebcontrolshyperlinkcolumnclassdatanavigateurlformatstringtopic.asp

[ メッセージ編集済み 編集者: 聖人@SKB 編集日時 2004-02-23 19:05 ]
さわでぃー
会議室デビュー日: 2004/02/19
投稿数: 5
投稿日時: 2004-02-23 18:54
回答ありがとうございましたっ。
早速、コーディングしたところ、いとも簡単に複数ページに
遷移するようになりました。

貴重な情報、本当にありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)