Для 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" поле никогда не отображается, что мне не нужно для режима вставки.
Как я могу добиться поведения отображения, которое я хочу для режима редактирования вставки стихов. Я согласен с программным изменением некоторых свойств, а не с использованием чистой разметки, но я не могу найти решение.
Пожалуйста, порекомендуйте!