我有一个asp DetailsView控件,我自动生成字段。
有一列具有映射到另一个表(外键)的ID。它显示在文本框中。我希望该列显示为下拉列表,如下面的代码示例所示。这样可以正常工作,但另一列仍然显示带有ID的文本框。
我的问题是: 是否可以使用自动生成并仍然隐藏您不需要或不想修改的列?
我不得不为每一列编写代码,因为一列需要使用TemplateField。
的DetailsView
<asp:DetailsView ID="DetailsView1" runat="server"
DefaultMode="Edit" DataSourceID="EntityDataSource1"
AutoGenerateEditButton="True" AutoGenerateInsertButton="True">
<Fields>
<asp:TemplateField HeaderText="Authorization">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" Runat="server" DataSourceID="EntityDataSource2" CssClass="DropDown"
DataTextField="Name" DataValueField="AuthenticationId" SelectedValue='<%# bind("AuthenticationId") %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp
</Fields>
</asp:DetailsView>
DetailsView DataSource:
<asp:EntityDataSource ID="EntityDataSource1" runat="server"
ContextTypeName="EntityNamespace.MyEntity" EnableFlattening="False"
EntitySetName="Routes" Include="Authentication" Where="it.RouteId = @RouteId">
<WhereParameters>
<asp:RouteParameter Type="Int32" RouteKey="RouteId" Name="RouteId" />
</WhereParameters>
</asp:EntityDataSource>
Dropdownlist DataSource
<asp:EntityDataSource ID="EntityDataSource2" runat="server"
ContextTypeName="EntityNamespace.MyEntity" EnableFlattening="False"
EntitySetName="Authentications">
</asp:EntityDataSource>
答案 0 :(得分:3)
我想你可以。看看AutoGenerateRows
。它在msdn上这样说:
明确声明的行字段可以与。结合使用 自动生成的行字段。两者都明确使用时 声明的行字段首先呈现,然后自动呈现 生成的行字段。
但您还必须考虑行不在字段集合
中自动生成的绑定行字段不会添加到字段中 集合。
参考here