2009-04-06 10 views
0

J'ai une application Web sur laquelle je travaille (ASP.NET 2.0 C#). Dans celui-ci j'ai un GridView dont la source de données est une base de données Oracle. Je reçois les données dans le gridview dans mon codebehind, et ne définissez pas la source de données directement. Je voulais créer un champ de lien hypertexte (NAME) qui me mène à une page de détails sur un enregistrement spécifique. Ce qui finit par arriver, c'est qu'il crée le champ Lien hypertexte ainsi que le champ normal qu'il obtient de la source de données, ce que je ne veux pas. Si je supprime le champ de mon instruction SELECT, il donne une erreur en disant quelque chose comme: "NAME" introuvable dans la source de données. Comment puis-je éliminer le champ normal et obtenir un champ de lien hypertexte à la place? J'ai essayé Gridview.Columns.Remove(columnlocation), mais cela ne fonctionnera pas car les colonnes n'existent pas à l'origine.Suppression de la colonne Gridview

Veuillez nous aider Merci.

Répondre

4

Au lieu de supprimer des colonnes, désactivez la propriété AutoGenerateColumns du gridview et de définir votre colonne de lien hypertexte manuellement comme:

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

+1 pour libellé de la manière facile :) –

1

On dirait que vous avez AutoGenerateColumns property ensemble à TRUE sur votre grille. Cela signifie qu'une colonne est générée pour CHAQUE colonne que vous renvoyez de votre requête.

Si vous voulez avoir des colonnes personnalisées, vous devez définir AutoGenerateColumns = « false » et ajouter toutes les colonnes à GirdView comme asp: BoundField et votre colonne Hyperlink comme asp: TemplateField

Laissez-moi savoir si je « m au large de la marque avec cette

est ici un code:

<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> 
Questions connexes