2008-11-03 9 views
2

J'ai un Gridview très standard, avec les boutons Modifier et Supprimer générés automatiquement. Il est lié à un tableadapter qui est lié à ma table RelationshipTypes.Comment lier une étiquette dans un gridview à une autre table?

dbo.RelationshipTypes: 
ID, Name, OriginConfigTypeID, DestinationConfigTypeID 

Je souhaite utiliser une étiquette qui va tirer le nom de la table ConfigTypes, en utilisant la OriginConfigTypeID et DestinationTypeID comme le lien.

dbo.ConfigTypes: 
ID, Name 

Mon problème est, je ne peux pas générer automatiquement modifier et supprimer des boutons à l'aide d'un Inner Join dans mon jeu de données. Ou puis-je?

Voici mon code:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" CssClass="TableList" 
     DataKeyNames="ID" DataSourceID="dsRelationShipTypes1"> 
     <Columns> 
      <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" 
       SortExpression="ID" Visible=False/> 
      <asp:TemplateField HeaderText="Origin" SortExpression="OriginCIType_ID"> 
       <EditItemTemplate> 
        &nbsp;<asp:DropDownList Enabled=true ID="DropDownList2" runat="server" DataSourceID="dsCIType1" 
         DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("OriginCIType_ID") %>'> 
        </asp:DropDownList> 
       </EditItemTemplate> 
       <ItemTemplate> 
        &nbsp; 
        <asp:Label ID="Label2" runat="server" Text='<%# Bind("OriginCIType_ID") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Name" SortExpression="Name"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label3" runat="server" Text='<%# Bind("Name") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Destination" SortExpression="DestinationCIType_ID"> 
       <EditItemTemplate> 
        <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="dsCIType1" DataTextField="Name" 
         DataValueField="ID" SelectedValue='<%# Bind("DestinationCIType_ID") %>'> 
        </asp:DropDownList> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("DestinationCIType_ID") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
</asp:GridView> 

J'ai essayé de créer mon propre éditer et supprimer des boutons, mais conservés recevoir l'erreur

« ne peut pas trouver la méthode de mise à jour »

ou quelque chose de similaire. Dois-je coder manuellement les méthodes de suppression et de mise à jour dans mon code-behind?

Répondre

0

Vous devez indiquer à l'objet ObjectDataSource quel objet utiliser ou à quel SQLDataSource proc stocké à utiliser. Utilisez l'attribut "UpdateMethod".

0

Vous pouvez utiliser la technique du code derrière pour indiquer quelle est la méthode pouvant gérer la fonction de mise à jour et de suppression. C'est la manière standard de le faire. Vous pouvez utiliser Sqldatasorce pour décrire la source. Vous pouvez mentionner toutes les tables utilisées pour la jointure interne et également utiliser la requête sql.

Questions connexes