2009-04-06 8 views
0

私は(ASP.NET 2.0 C#)で作業しているWebアプリケーションを持っています。私は、データソースがOracleデータベースであるGridViewを持っています。私は自分のコードビハインドでgridviewにデータを取得し、データソースを直接設定しません。Gridview Column Remove

特定のレコードに関する詳細ページに移動するためのハイパーリンクフィールド(NAME)を作成したかったのです。何が起こるのかは、ハイパーリンクフィールドとそれがデータソースから取得する通常のフィールドを作成するということです。これは必要ではありません。 SELECT文からフィールドを削除すると、データソースに "NAME"が見つかりませんでした。

通常のフィールドを削除して代わりにハイパーリンクフィールドを取得するにはどうすればよいですか?私はGridview.Columns.Remove(columnlocation)を試しましたが、それは最初にそこに存在していない列は動作しません。

助けてください ありがとうございます。代わりに列を除去する

答えて

4

、GridViewののAutoGenerateColumnsプロパティを無効にし、そのように手動でハイパーリンク列を設定します。あなたはグリッド上でTRUEにAutoGenerateColumns propertyを設定しているよう

<asp:gridview id="GridView1" 
    autogeneratecolumns="false" 
    runat="server">     
     <asp:HyperLinkField DataNavigateUrlFields="UserID" 
      DataNavigateUrlFormatString="UserDetails.aspx?id={0}" 
      DataTextField="UserName" /> 
</asp:gridview> 
+0

1 :) –

1

が鳴ります。つまり、クエリから返されるすべての列に対して列が生成されます。あなたには、いくつかのカスタム列を持つようにしたい場合は、あなたは=「false」にAutoGenerateColumnsを設定し、ASPとしてGirdViewにすべての列を追加する必要があり

:ASPとしてBoundFieldとあなたのハイパーリンク列:TemplateField

は、私なら、私を知ってみましょうここでは、この

で的外れM」は、いくつかのコードです:言葉遣いそれは簡単な方法のための

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundField DataField="Name" /> 
     <asp:BoundField DataField="Whatever" /> 
     <asp:TemplateField> 
     <ItemTemplate> 
     <a href='<%# Eval("UserId", "URL_TO_USER?userId={0}") %>'>Details</a> 
     </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView>