2011-07-01 1 views
1

Comment lier une colonne à la grille qui n'est pas présente dans la base de données?Comment lier une colonne à gridview qui n'est pas présente dans la base de données

Je souhaite afficher l'unité totale dans la dernière colonne nommée Total Unit mais elle n'est pas présente dans la base de données.

j'ai eu une exception d'argument:

Colonne 'tunit' ne fait pas partie à la table .

foreach(DataRow row in dt.Rows) 
{ 
    object[] obj=new object[2]; 
    obj[0] = row["Transaction_Id"]; 
    obj[1] = row["tunit"]; 
    dtgrid.Rows.Add(obj); 
} 
+0

Il y a quelques solutions que je peux penser à cela mais je serai capable de donner le plus approprié si vous fournissez un peu plus de détails, et peut-être un fragment de code. Êtes-vous lié à un DataTable? Ajoutez-vous manuellement les colonnes dans la vue de la grille ou sont-elles générées automatiquement? – DoctorMick

Répondre

0

si vous liez une liste, vous pouvez ajouter une propriété à cette liste et se lier à la grille en utilisant eval (« PROPERTYNAME »)

0

Lorsque vous préparez la requête SELECT, assurez-vous que vous avez une colonne plus supplémentaire avec la valeur totale que vous voulez attribuer à cette ligne particulière, vous pouvez spécifier une colonne dans le gridview comme suit, assurez-vous que vous spécifiez

'AutoGenerateColumns = false; 


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="sds_datasourceName"> 
<Columns> 
      <asp:TemplateField HeaderText="Total" > 
       <itemtemplate> 
        <asp:Label ID="Total" runat="server" Text='<%# Bind("Total") %>'></asp:Label> 
       </itemtemplate> 

      </asp:TemplateField> 
</Columns> 
     </asp:GridView> 
3

La meilleure solution à ce problème consiste à mettre en œuvre la colonne non liée comme il est expliqué dans le sujet Unbound Columns.

Questions connexes