FormView の EditItemTemplate に次のコードがあります。
<tr id="primaryGroupRow" runat="server">
<td class="Fieldname">Primary Group:</td>
<td><asp:DropDownList ID="iPrimaryGroupDropDownList" runat="server" DataSourceID="GroupDataSource" CssClass="PageText"
DataTextField="sGroupName" DataValueField="iGroupID" SelectedValue='<%# Bind("iPrimaryGroup") %>'></asp:DropDownList></td>
</tr>
テーブル行の runat="server" を削除すると、iPrimaryGroup フィールドは 100% バインドされ、ビジネス ロジック層に適切に渡されます。ただし、上記のコードの場合、値ゼロで渡されます。
これがなぜなのか、それを回避する方法を誰か教えてもらえますか? これは、管理者または通常のユーザーが編集しているかどうかに基づいて、このテーブル行を非表示にする必要があるコントロールにあります。つまり、一部のフィールドは管理者のみが書き込み可能であり、ユーザーが管理者でない場合はビューからコントロールを非表示にしたいと考えています。