GridViewとHyperlink

現在仕事で、VS2008、.Net Framework3.5 でASPなモノを開発しているのですが、実装中に気づいた事をメモがてら。

GridViewの列にリンクを設定したいというときのサンプル。

いろいろと試行錯誤した結果(まだ未実装なので、完全に参考にしないでください(検索等でたどり着いた方へ))
まず、標準で選べるFieldのHyperLinkFieldを使った場合、

<asp:HyperLinkField DataTextField="Name" DataNavigateUrlFields="ID" DataNavigateUrlFormatString="hoge.aspx?ID={0}" />

という形で、列がハイパーリンクになるフィールドのaspタグを設定orソースに直書きで書き、バインドするという感じ。
NavigateUrlにして、直接決め打ちでぶっ飛ばす というのも可能。

<asp:HyperLink runat="server" id="HyperLink"   Text="<%# Eval("Name") %>"  NavigateUrl='hoge.aspx?ProjectID=<%# Eval("DatasourceField") %>'></asp:HyperLink>

という形のもがベターかも。
Eval関数でデータフィールドをぶち込む感じ。

<asp:GridView ID="GridView1" runat="server">

            <Columns>

                <asp:TemplateField HeaderText="ColumnHeader ">

                    <ItemTemplate>

                     <asp:HyperLink runat="server" id="Link"   Text="<%# Eval("Name") %>"         
NavigateUrl='hoge.aspx?ProjectID=<%# Eval("DatasourceField") %>'></asp:HyperLink>

                    </ItemTemplate>

                 </asp:TemplateField>

            </Columns>

        </asp:GridView>

これが今回の実装ではベストかな と
TemplateFieldでパーソナライズドした行を作り、ItemTemplateプロパティの中に上でやったようなことをつらつらと書く感じ。

昼休みがもう終わるので、ちょっと追記するかもしれませんが、これくらいで。

あと、メインPCが死んだので家からTwitterとかできないです しくしく