使用下拉列表进行编辑时出现Gridview错误

时间:2012-01-02 06:25:03

标签: asp.net gridview

我有网格视图,下面是完整的代码和Msaccess DB。我在sql查询中使用了解码功能。当我按下网格视图上的编辑按钮时,它显示了下面的错误

“DropDownList2”具有一个无效的SelectedValue,因为它在项目列表中不存在。 参数名称:值“ 我的SQL数据源代码在

之下
  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DataConnectionString2 %>"
            DeleteCommand="DELETE FROM [EMAILS] WHERE [ID] = ?" InsertCommand="INSERT INTO [EMAILS] ([Email], [FULLNAME],[FLAG]) VALUES (?, ?, ?)"
            ProviderName="<%$ ConnectionStrings:DataConnectionString2.ProviderName %>" SelectCommand="SELECT ID, Email, FULLNAME, switch(FLAG = 1, 'Allowed', Flag = 0, 'Not Allowed') AS FLAG FROM EMAILS"
            UpdateCommand="UPDATE [EMAILS] SET [Email] = ?, [FULLNAME] = ?,[FLAG] = ? WHERE [ID] = ?">
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Email" Type="String" />
                <asp:Parameter Name="FULLNAME" Type="String" />
                <asp:Parameter Name="FLAG" Type="Int32" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>

                <asp:Parameter Name="Email" Type="String" />
                <asp:Parameter Name="FULLNAME" Type="String" />
                <asp:Parameter Name="FLAG" Type="Int32" />
            </InsertParameters>
        </asp:SqlDataSource>

网格视图代码如下:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
            AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None"
            BorderWidth="1px" CellPadding="4" DataKeyNames="ID" DataSourceID="SqlDataSource1"
            HorizontalAlign="Center" Width="821px" EmptyDataText="No Emails Found">
            <RowStyle BackColor="White" Font-Names="Arial" Font-Size="Small" ForeColor="Black" />
            <Columns>
                <asp:CommandField ButtonType="Button" ShowEditButton="True" ShowSelectButton="True" ShowDeleteButton="True" />
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                    SortExpression="ID" Visible="False" />
                <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
                <asp:BoundField DataField="FULLNAME" HeaderText="Full Name" SortExpression="FULLNAME" />
                <asp:TemplateField HeaderText="Flag" SortExpression="FLAG">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList2" runat="server" SelectedValue="<%# Bind('FLAG') %>" AppendDataBoundItems="True">
                            <asp:ListItem Value="1">Allowed</asp:ListItem>
                            <asp:ListItem Value="0">Not Allowed</asp:ListItem>
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("FLAG") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
            <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" Font-Names="Arial" Font-Size="Small"
                ForeColor="#FFFFCC" HorizontalAlign="Center" />
            <EmptyDataRowStyle BackColor="#804000" Font-Names="Arial" Font-Size="Small" ForeColor="White" />
        </asp:GridView>

请告诉我这里可能出现的错误

1 个答案:

答案 0 :(得分:1)

检查天气,您尝试编辑的行的字段flag中的值可在EditItemTemplate的DropDownList中找到

尝试删除EditItemTemplate

中DropDownList中的AppendDataBoundItems="True"