所以我有一个与sql数据源绑定的gridview。之后,我更改了一个列的编辑模板,而不是textBox,我使用了一个下拉列表。在该下拉列表中,我输入了两个项目及其值。现在,当我更新gridview列时,我安装的dropdownlist不会将旧值更新为其新值,但会获得NULL值。
这是我的代码:
<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>
还有其他我需要改变的东西,所以这可行吗?
答案 0 :(得分:1)
您需要将<{1}}绑定到数据库字段
DropDownList
关键部分是
<asp:DropDownList ID="ddlStatus" runat="server"
SelectedValue='<%# Bind("StatusP") %>'>
<asp:ListItem Value="">None</asp:ListItem>
<asp:ListItem Value="Prihvaćena">Prihvaćena</asp:ListItem>
<asp:ListItem Value="Odbijena">Odbijena</asp:ListItem>
</asp:DropDownList>
这将导致您选择的值传递到数据源。