Для ASP.NET я использую DetailsView для вставки и редактирования записи. Для режима редактирования я не хочу отображать поле первичного ключа, потому что оно не должно быть изменено. Для режима вставки я хочу отобразить поле первичного ключа, потому что оно не существует, и пользователь может указать его через DropDownList, который гарантирует, что они выберут уникальное значение. TemplateField используется в разметке DetailsView для поля первичного ключа (отсюда DropDownList для режима вставки).
Моя проблема в том, что я не могу заставить поле первичного ключа не отображаться для режима редактирования и отображать для режима вставки. В разметке у меня есть:
<asp:TemplateField HeaderText="name" InsertVisible="True" Visible="True">
<InsertItemTemplate>
<asp:DropDownList ID="ddl2NonMembers" runat="server"
Width="155px"
Sourceless="sqlNonMembers"
DataTextField="name"
DataValueField="id_adm"
SelectedValue='<%# Bind("member_grp") %>'>
</asp:DropDownList>
</InsertItemTemplate>
</asp:TemplateField>
С TemplateField Visible = "True", HeaderText = "name" всегда отображает то, что я не хочу для режима редактирования. С TemplateField Visible = "False" поле никогда не отображает то, что я не хочу для режима вставки.
Как мне добиться нужного мне режима отображения в режиме редактирования вставок. Я в порядке с изменением некоторого свойства программно, а не полагаюсь на чистый подход разметки, но я не могу найти решение.
Пожалуйста, сообщите!