- PR -

DataGridのハイパーリンク列に行位置を入れたい

投稿者投稿内容
たんく
会議室デビュー日: 2003/04/14
投稿数: 8
投稿日時: 2003-04-16 12:27
おぉっ!
ZEBRAさん!!
「テンプレート列編集」ですね。 こんな技を隠しているなんて...
(単に私がモノを知らないだけなんですけどね)

ぐーです。
出来てしまいました。

結局コードは以下の通りです。

コード:
<asp:TemplateColumn HeaderText="製品CD">
 <ItemTemplate>
  <asp:HyperLink id=HyperLink1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Column1") %>'
      Target="_blank" NavigateUrl='<%# DataBinder.Eval(Container, "ItemIndex", "Link.aspx?id={0}") %>'>
  </asp:HyperLink>
 </ItemTemplate>
</asp:TemplateColumn>



しかも!
これが、デザイナ上で全て出来るんですねぇ。

指定の仕方は以下の通り。 (って、殆ど未来の自分への覚え書き状態ですね)

  1. DataGridを配置する
  2. プロパティビルダで、Column1を引っ張ってきてテンプレート列に変換する
  3. 次に「テンプレートの編集」モードに移って、ItemTemplateにHyperLinkをD&D
  4. HyperLinkのプロパティページで(DataBindings)を選択して「データ連結」ダイアログを表示させる
  5. 連結可能プロパティで「Text」を選択
    単純連結から「DataItem.Column1」を選択
  6. 次に、連結可能プロパティで「NavigateUrl」を選択
    単純連結から「ItemIndex」を選択
    こっちは、書式に「Link.aspx?id={0}」と入れるのを忘れない様に
  7. 「OK」で、HTMLを確認してみましょう!

あっ、勿論HyperLinkのほかのプロパティは触ってますよ。

んー、やっぱりASP.NETは良いかも知れない...


ZEBRAさん、いしさん、ありがとうございました。
おかげさまで一つの「回答」に辿り着く事が出来ました。

今後とも宜しくお願いいたします。


p.s.
ここの会議室で発言する時は、ログインしない方が良いですね。
一生懸命入力しても、タイムアウト(?)で全てチャラになってしまいました。
(しかも、2度も!

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