在我的下拉列表控件中选择一个listitem之后,我似乎无法更新数据库。有人知道为什么吗?
我收到此错误消息:
' DDL'有一个SelectedValue无效,因为它在items列表中不存在。参数名称:值
这是标记:
<asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="OrdersDataSource" ForeColor="Black" GridLines="Horizontal" AutoGenerateColumns="False" CssClass="gridview" DataKeyNames="OrderId">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:TemplateField HeaderText="Status" SortExpression="Status">
<EditItemTemplate>
<asp:DropDownList ID="ddl" runat="server" DataTextField="Status" DataValueField="Status" SelectedValue='<%# Bind("Status") %>'>
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
<asp:ListItem Text="No" Value="2"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Status") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="OrderId" HeaderText="OrderId" InsertVisible="False" ReadOnly="True" SortExpression="OrderId" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="OrdersDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ProjectConnectionString1 %>" SelectCommand="SELECT [Status], [OrderId] FROM [Order]" UpdateCommand="UPDATE [Order] SET [Status] = @Status WHERE [OrderId] = @OrderId">
<UpdateParameters>
<asp:Parameter Name="Status" Type="String" />
<asp:Parameter Name="OrderId" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
您的状态下拉列表的值为&#34; 1&#34;和&#34; 2&#34;。您尝试绑定到它的一个或多个状态不是&#34; 1&#34;或&#34; 2&#34;。您必须对其进行更改,以便您尝试将其绑定到的任何状态都显示在可能值列表中。
在状态列中查看查询结果,以确定值是什么,并将它们添加为可能的值。