Gridview Ошибка при редактировании с выпадающим списком - PullRequest
1 голос
/ 02 января 2012

У меня есть вид сетки с следующим полным кодом. С 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 Ответ

1 голос
/ 02 января 2012

Проверьте, что значение в поле flag строки, которую вы пытаетесь редактировать, доступно в DropDownList в EditItemTemplate

И попробуйте удалить AppendDataBoundItems="True" в DropDownList в EditItemTemplate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...