Ich habe also eine Gridview, die mit einer SQL-Datenquelle begrenzt ist. Danach habe ich eine Bearbeitungsvorlage für eine Spalte geändert und anstelle von textBox eine Dropdown-Liste verwendet. In dieser Dropdown-Liste habe ich zwei Elemente und ihre Werte eingegeben. Wenn ich jetzt eine Gridview-Spalte aktualisiere, in der ich die Dropdown-Liste installiert habe, wird der alte Wert nicht auf seinen neuen Wert aktualisiert, sondern erhält einen NULL-Wert.Dropdown-Liste in der Gridview-Bearbeitungsvorlage aktualisiert den Wert der Spalte
Dies ist mein Code:
<asp:GridView ID="gvNeobrađene" HorizontalAlign="Center" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="sdsNeobradene" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowUpdating="gvNeobrađene_RowUpdating">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
<asp:BoundField DataField="Ime" HeaderText="Ime" SortExpression="Ime" />
<asp:BoundField DataField="Prezime" HeaderText="Prezime" SortExpression="Prezime" />
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:BoundField DataField="Telefon" HeaderText="Telefon" SortExpression="Telefon" />
<asp:BoundField DataField="Napomena" HeaderText="Napomena" SortExpression="Napomena" />
<asp:BoundField DataField="SeminarID" HeaderText="SeminarID" SortExpression="SeminarID" />
<asp:BoundField DataField="TerminID" HeaderText="TerminID" SortExpression="TerminID" />
<asp:CheckBoxField DataField="PotvrdaP" HeaderText="PotvrdaP" SortExpression="PotvrdaP" ReadOnly="false"/>
<asp:TemplateField HeaderText="v" SortExpression="StatusP">
<EditItemTemplate>
<asp:DropDownList ID="ddlStatus" runat="server">
<asp:ListItem Value="Prihvaćena">Prihvaćena</asp:ListItem>
<asp:ListItem Value="Odbijena">Odbijena</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("StatusP") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" CancelText="Odustani" DeleteText="Izbriši" EditText="Uredi" InsertText="Ubaci" NewText="Novo" SelectText="Odaberi" ShowEditButton="True" ShowHeader="True" UpdateText="Spremi" ShowDeleteButton="True" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<asp:SqlDataSource ID="sdsNeobradene" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:SeminarBazaConnectionString %>"
DeleteCommand="DELETE FROM [Predbiljezba] WHERE [Id] = @original_Id AND [Ime] = @original_Ime AND [Prezime] = @original_Prezime AND [Email] = @original_Email AND [Telefon] = @original_Telefon AND (([Napomena] = @original_Napomena) OR ([Napomena] IS NULL AND @original_Napomena IS NULL)) AND [SeminarID] = @original_SeminarID AND [TerminID] = @original_TerminID AND [PotvrdaP] = @original_PotvrdaP AND (([StatusP] = @original_StatusP) OR ([StatusP] IS NULL AND @original_StatusP IS NULL))" InsertCommand="INSERT INTO [Predbiljezba] ([Ime], [Prezime], [Email], [Telefon], [Napomena], [SeminarID], [TerminID], [PotvrdaP], [StatusP]) VALUES (@Ime, @Prezime, @Email, @Telefon, @Napomena, @SeminarID, @TerminID, @PotvrdaP, @StatusP)" OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [Predbiljezba] WHERE ([PotvrdaP] = @PotvrdaP)"
UpdateCommand="UPDATE [Predbiljezba] SET [Ime] = @Ime, [Prezime] = @Prezime, [Email] = @Email, [Telefon] = @Telefon, [Napomena] = @Napomena, [SeminarID] = @SeminarID, [TerminID] = @TerminID, [PotvrdaP] = @PotvrdaP, [StatusP] = @StatusP WHERE [Id] = @original_Id">
<DeleteParameters>
<asp:Parameter Name="original_Id" Type="Int32" />
<asp:Parameter Name="original_Ime" Type="String" />
<asp:Parameter Name="original_Prezime" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Telefon" Type="String" />
<asp:Parameter Name="original_Napomena" Type="String" />
<asp:Parameter Name="original_SeminarID" Type="Int32" />
<asp:Parameter Name="original_TerminID" Type="Int32" />
<asp:Parameter Name="original_PotvrdaP" Type="Boolean" />
<asp:Parameter Name="original_StatusP" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Ime" Type="String" />
<asp:Parameter Name="Prezime" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Telefon" Type="String" />
<asp:Parameter Name="Napomena" Type="String" />
<asp:Parameter Name="SeminarID" Type="Int32" />
<asp:Parameter Name="TerminID" Type="Int32" />
<asp:Parameter Name="PotvrdaP" Type="Boolean" />
<asp:Parameter Name="StatusP" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:Parameter DefaultValue="False" Name="PotvrdaP" Type="Boolean" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Ime" Type="String" />
<asp:Parameter Name="Prezime" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Telefon" Type="String" />
<asp:Parameter Name="Napomena" Type="String" />
<asp:Parameter Name="SeminarID" Type="Int32" />
<asp:Parameter Name="TerminID" Type="Int32" />
<asp:Parameter Name="PotvrdaP" Type="Boolean" />
<asp:Parameter Name="StatusP" Type="String" />
<asp:Parameter Name="original_Id" Type="Int32" />
<asp:Parameter Name="original_Ime" Type="String" />
<asp:Parameter Name="original_Prezime" Type="String" />
<asp:Parameter Name="original_Email" Type="String" />
<asp:Parameter Name="original_Telefon" Type="String" />
<asp:Parameter Name="original_Napomena" Type="String" />
<asp:Parameter Name="original_SeminarID" Type="Int32" />
<asp:Parameter Name="original_TerminID" Type="Int32" />
<asp:Parameter Name="original_PotvrdaP" Type="Boolean" />
<asp:Parameter Name="original_StatusP" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
Gibt es andere Sachen, die ich ändern müssen, so könnte dies umgehen?
Ändern Sie die ID der DDL in StatusP und versuchen Sie es mit agian. – Kami
Dies funktionierte nicht für mich :( – Goran