Wie binden Sie ein label auf der Innenseite eine gridview in einer anderen Tabelle?
Ich habe eine sehr standard Gridview
mit Schaltflächen Bearbeiten und Löschen automatisch generiert.
Es ist gebunden an einen tableadapter
verbunden mit meine RelationshipTypes
Tabelle.
dbo.RelationshipTypes:
ID, Name, OriginConfigTypeID, DestinationConfigTypeID
Ich möchte ein label, das wird, ziehen Sie den Namen aus der ConfigTypes
Tabelle, mit OriginConfigTypeID
und DestinationTypeID
als link.
dbo.ConfigTypes:
ID, Name
Mein problem ist, ich kann nicht automatisch generieren, Bearbeiten und Löschen-buttons mit einem Inner Join
in meinem dataset. Oder kann ich das?
Hier ist mein 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>
<asp:DropDownList Enabled=true ID="DropDownList2" runat="server" DataSourceID="dsCIType1"
DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("OriginCIType_ID") %>'>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<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>
So, ich habe versucht, um meine eigene Schaltflächen Bearbeiten und löschen, behielt aber den Empfang der Fehler
"kann nicht finden die update-Methode"
oder etwas ähnliches. Muss ich manuell code der delete-und update-Methoden in meinem code-behind?
- Auf "automatisch generieren" Bearbeiten " und "löschen" Schaltfläche in der gridview verknüpften Datenquelle müssen Sie eine Update-Abfrage und eine Abfrage Löschen, die in es definiert das markup, oder über code-behind.
Update
s undDelete
s benötigt einen Primärschlüssel, in der Regel definiert durch die GridviewsDatakeyNames
Eigenschaft, die am Ende an die jeweiligen Abfrage-Parameter, die zusammen mit gebundenen Feldern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Muss man sagen, entweder das ObjectDataSource-Objekt, was zu verwenden oder das SQLDataSource-was gespeicherte Prozedur zu verwenden. Verwenden Sie die "UpdateMethod" - Attribut.
Können Sie die code-behind-Technik zu erwähnen, welche Methode das könnte Griff das update-und delete-Funktion. Dies ist der standard-Weg, dies zu tun. Sie können entweder die Sqldatasorce zu beschreiben, die Quelle.Sie können erwähnen, welche alle verwendeten Tabellen für inner join und können auch mit der sql-Abfrage.