具有一个无效的SelectedValue,因为它不存在于项列表中。参数名称:value

时间:2016-07-09 05:23:37

标签: asp.net

我在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>

1 个答案:

答案 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>