У меня очень стандартный Gridview
с автоматически сгенерированными кнопками "Изменить" и "Удалить". Он привязан к tableadapter
, который связан с моей таблицей RelationshipTypes
.
dbo.RelationshipTypes:
ID, Name, OriginConfigTypeID, DestinationConfigTypeID
Я хочу использовать метку, которая будет извлекать имя из таблицы ConfigTypes
, используя OriginConfigTypeID
и DestinationTypeID
в качестве ссылки.
dbo.ConfigTypes:
ID, Name
Моя проблема в том, что я не могу автоматически генерировать кнопки «Изменить» и «Удалить», используя Inner Join
в своем наборе данных. Или я могу?
Вот мой код:
<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>
Поэтому я попытался создать свои собственные кнопки редактирования и удаления, но продолжал получать сообщение об ошибке
"не могу найти метод обновления"
или что-то подобное. Должен ли я вручную кодировать методы удаления и обновления в моем коде программной части?
Update
s иDelete
s потребуется первичный ключ, обычно определяемый свойством GridviewsDatakeyNames
, которое в конечном итоге передается соответствующим параметрам запроса вместе с любыми связанными полями. - person fnostro   schedule 14.05.2018