- PR -

GridViewのHyperLinkFieldについて

1
投稿者投稿内容
なお
会議室デビュー日: 2006/03/05
投稿数: 2
投稿日時: 2006-03-28 00:24
はじめまして、よろしくお願いします。
VS2005のASP.NETで開発しています。

GridViewのHyperLinkFieldの特定のセルで、
ハイパーリンクできないようにしたい(表示上もできないのがわかるようにしたい)
のですが、どうすればいいのか行き詰っています。

GridViewはSqlDataSourceにバインドして、
データベースから「コード」と「リンクするかどうかのフラグ」を取得しています。
「コード」列がHyperLinkFieldです。
GridViewのRowDataBoundイベントで「リンクするかどうかのフラグ」をチェックするところまではできたのですが、
ここで「コード」のセルをどうすればリンク不可にできるのかわからない状態です。
このやり方も違うのでしょうか??

ご教授お願いいたします!!!
masakazu
会議室デビュー日: 2006/02/16
投稿数: 9
投稿日時: 2006-03-28 03:22
良いかどうかは別にして、私はこういう時はItemTemplateにしちゃうことが多いです。
こんな感じ
コード:
    <asp:GridView ID=gridView runat=server AutoGenerateColumns=False>
      <Columns>
        <asp:CheckBoxField DataField="canLink" HeaderText="リンク許可" ReadOnly="True" />
        <asp:TemplateField HeaderText="リンク">
          <ItemTemplate>
            <asp:HyperLink ID="hyperLink" runat="server" Text='<%# Eval("URL") %>'
              NavigateUrl='<%# (bool)Eval("canLink") ? Eval("URL") : "" %>'></asp:HyperLink>
          </ItemTemplate>
        </asp:TemplateField>
      </Columns>
    </asp:GridView>



コード全体
http://www.spoon.mydns.jp/net/test/HyperLinkField/code.xml
なお
会議室デビュー日: 2006/03/05
投稿数: 2
投稿日時: 2006-03-28 22:05
masakazuさん、ありがとうございます!!
教えていただいたようにItemTemplateでやってみたらすぐにできました!!
他にもいろいろとまわりくどいことやっていたものもスッキリしそうです。
本当にありがとうございました!!
1

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