我在asp.net中创建了一个DetailsView,在该视图中我使用的是Template字段。在我的表格中,我要求用户的性别。我想向我们提供一个简单的下拉列表来完成此操作,但每当我点击“编辑”链接时,我都会收到以下错误。 - “'ddlEditGender'有一个SelectedValue
无效,因为它在项目列表中不存在。
参数名称:value。“
在点击编辑按钮之前,我可以看到它显示在DetailsView中:
entity_id 4
Full Name LastName2
First Name Test2
Last Name Last2
Gender Male
Note This is another test user account
以下是我的模板的标记:
<asp:TemplateField HeaderText="Gender" SortExpression="gender">
<EditItemTemplate>
<asp:DropDownList ID="ddlEditGender" runat="server" Width="140px" SelectedValue='<%# Bind("gender", "{0}") %>' AppendDataBoundItems="True" >
<asp:ListItem Value="Male"></asp:ListItem>
<asp:ListItem Value="Female"></asp:ListItem> </asp:DropDownList>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("gender") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("gender") %>'></asp:Label>
</ItemTemplate>
答案 0 :(得分:0)
似乎在点击编辑链接后, gender
的属性不再存在。请确保在重新绑定{{{ 1}}点击编辑后的数据,包括 DetailsView
属性。看看下面的工作示例,我希望它有帮助你找到了问题:
<强> .ASPX:强>
gender
代码背后:
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateEditButton="True" AutoGenerateRows="False" OnModeChanging="DetailsView1_ModeChanging">
<Fields>
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:Label ID="lblFirst" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtFirst" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<asp:Label ID="lblFirst" runat="server" Text='<%# Bind("Gender") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlEditGender" runat="server" Width="140px" SelectedValue='<%# Bind("gender", "{0}") %>' AppendDataBoundItems="True">
<asp:ListItem Value="Male"></asp:ListItem>
<asp:ListItem Value="Female"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>