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"を使用すると、挿入モードに必要のないフィールドが表示されることはありません。
挿入と編集モードで必要な表示動作を実現するにはどうすればよいですか。純粋なマークアップアプローチに頼るのではなく、プログラムでいくつかのプロパティを変更することは問題ありませんが、解決策を理解することはできません。
お知らせ下さい!