Sto facendo esperimenti, ma ricevo un errore che no riesco a risolvere. E' un semplice form che visualizza i dati da una tbl di un db, con l'opzione per la modifica.
Finchè lascio per l'editing le texbox generate, tutto funziona regolarmente. Come sostituisco alla textbox una dropdownlist ricevo il seguente errore:
SelectedValue in 'DropDownList1' non valido, poiché non è incluso nell'elenco di elementi.
Nome parametro: value
Di seguito ti posto il codice:
Inizio Codice
codice:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Test edit
formview</div>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/DbTest.mdb"
DeleteCommand="DELETE FROM [TblProva2] WHERE [ID] = ? AND (([Sesso] = ?) OR ([Sesso] IS NULL AND ? IS NULL)) AND (([dataNascita] = ?) OR ([dataNascita] IS NULL AND ? IS NULL)) AND (([Provenienza] = ?) OR ([Provenienza] IS NULL AND ? IS NULL)) AND (([dataInserimento] = ?) OR ([dataInserimento] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [TblProva2] ([ID], [Sesso], [dataNascita], [Provenienza], [dataInserimento]) VALUES (?, ?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [TblProva2]"
UpdateCommand="UPDATE [TblProva2] SET [Sesso] = ?, [dataNascita] = ?, [Provenienza] = ?, [dataInserimento] = ? WHERE [ID] = ? AND (([Sesso] = ?) OR ([Sesso] IS NULL AND ? IS NULL)) AND (([dataNascita] = ?) OR ([dataNascita] IS NULL AND ? IS NULL)) AND (([Provenienza] = ?) OR ([Provenienza] IS NULL AND ? IS NULL)) AND (([dataInserimento] = ?) OR ([dataInserimento] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_ID" Type="Int32" />
<asp:Parameter Name="original_Sesso" Type="String" />
<asp:Parameter Name="original_Sesso" Type="String" />
<asp:Parameter Name="original_dataNascita" Type="String" />
<asp:Parameter Name="original_dataNascita" Type="String" />
<asp:Parameter Name="original_Provenienza" Type="String" />
<asp:Parameter Name="original_Provenienza" Type="String" />
<asp:Parameter Name="original_dataInserimento" Type="String" />
<asp:Parameter Name="original_dataInserimento" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Sesso" Type="String" />
<asp:Parameter Name="dataNascita" Type="String" />
<asp:Parameter Name="Provenienza" Type="String" />
<asp:Parameter Name="dataInserimento" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Sesso" Type="String" />
<asp:Parameter Name="dataNascita" Type="String" />
<asp:Parameter Name="Provenienza" Type="String" />
<asp:Parameter Name="dataInserimento" Type="String" />
<asp:Parameter Name="original_ID" Type="Int32" />
<asp:Parameter Name="original_Sesso" Type="String" />
<asp:Parameter Name="original_Sesso" Type="String" />
<asp:Parameter Name="original_dataNascita" Type="String" />
<asp:Parameter Name="original_dataNascita" Type="String" />
<asp:Parameter Name="original_Provenienza" Type="String" />
<asp:Parameter Name="original_Provenienza" Type="String" />
<asp:Parameter Name="original_dataInserimento" Type="String" />
<asp:Parameter Name="original_dataInserimento" Type="String" />
</UpdateParameters>
</asp:AccessDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True"
AutoGenerateRows="False" BackColor="#DEBA84" BorderColor="#DEBA84"
BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2"
DataKeyNames="ID" DataSourceID="AccessDataSource1" EnableModelValidation="True"
Height="50px" Width="125px">
<EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<Fields>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="Sesso" HeaderText="Sesso" SortExpression="Sesso" />
<asp:BoundField DataField="dataNascita" HeaderText="dataNascita"
SortExpression="dataNascita" />
<asp:TemplateField HeaderText="Provenienza" SortExpression="Provenienza">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("Provenienza") %>' AutoPostBack="True">
<asp:ListItem>Roma</asp:ListItem>
<asp:ListItem>Milano</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Provenienza") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Provenienza") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="dataInserimento" HeaderText="dataInserimento"
SortExpression="dataInserimento" />
<asp:CommandField ShowEditButton="True" />
</Fields>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
</asp:DetailsView>
</form>
</body>
</html>
Il problema è in questa sezione:
codice:
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("Provenienza") %>' AutoPostBack="True">
<asp:ListItem>Roma</asp:ListItem>
<asp:ListItem>Milano</asp:ListItem>
</asp:DropDownList>
Considera che nel db i dati nella colonna di test sono già presenti, io devo semplicemente far editare il dato già inserito con un testo preordinato, motivo per cui non posso usare una texbox.
Vorrei più che altro capire il principio.
Grazie