У меня есть GridView
, связанный с каким-либо источником данных Entity. Редактирование включено. Объект, показанный в GridView, связан с другим объектом. Допустим, я показываю Machines
, которые создают Products
(ни одного, ни один тип продукта на машину) Я отображаю название продукта в gridview с
<ItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# ((Machine)Container.DataItem).Product == null ? "-" : ((Machine)Container.DataItem).Product.Name %>'>
</asp:Label>
</ItemTemplate>
, который работает хорошо. Теперь я хочу иметь возможность редактировать связанный продукт в EditItemTemplate
. Поэтому я добавил
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddProducts" DataSourceID="dsProducts"
DataTextField="Name" DataValueField="ProductID"
SelectedValue='<%# Bind("Product.ProductID") %>'
AppendDataBoundItems="true">
<asp:ListItem Text="" Value="0"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
Это не работает, потому что, когда с машиной не связан продукт, нет соответствующего SelectedValue
и в любом случае Product
равно null
. Я добавил пустой элемент в DropDownList, который следует выбирать, когда на машине нет товара. А также, если я редактирую машину с продуктом и выбираю этот элемент, столбец должен быть обнулен.
Как мне этого добиться?