Ho un problema con le CRUD del GridView, in pratica se personalizzo i boundField i metodi CRUD non funzionano... la gridview è agganciata ad una drop che fa da filtro (tra due tabelle), posto un po di codicce:
nel .aspx
<asp:DropDownList ID="DdlFiltroGridV" runat="server" AutoPostBack="true" DataSourceID="AccessDataSource1"
DataTextField="NomeDestinazione" DataValueField="id_destinazione" AppendDataBoundItems="true">
<asp:ListItem Text="[Seleziona]" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/DbCataloghi.mdb"
SelectCommand="SELECT [id_destinazione], [NomeDestinazione] FROM [destinazioni]">
</asp:AccessDataSource>
<br />
<asp:AccessDataSource ID="DbSourceCataloghi1" runat="server" DataFile="~/App_Data/DbCataloghi.mdb"
SelectCommand="SELECT cataloghi.id AS [id], cataloghi.NomeCatalogo, cataloghi.percorsofile, cataloghi.visibile, cataloghi.DataCaricamento, cataloghi.id_destinazione, cataloghi.Utente, cataloghi.DataViaggio, cataloghi.id_struttura, destinazioni.NomeDestinazione AS [NomeDestinazione Destinazioni] FROM (destinazioni INNER JOIN cataloghi ON cataloghi.id_destinazione = destinazioni.id_Destinazione) WHERE (cataloghi.id_destinazione = ?) OR (? = -1)"
DeleteCommand="DELETE FROM [cataloghi] WHERE [id] = ?"
InsertCommand="INSERT INTO [destinazioni] ([id_destinazione], [NomeDestinazione], [Utente]) VALUES (?, ?, ?)"
UpdateCommand="UPDATE [cataloghi] SET [NomeCatalogo] = ?, [PercorsoFile] = ?, [Visibile] = ?, [DataCaricamento] = ?, [id_destinazione] = ?, [utente] = ?, [DataViaggio] = ?, [id_Struttura] = ? WHERE [id] = ?"
OldValuesParameterFormatString="original_{0}">
<SelectParameters>
<asp:ControlParameter ControlID="DdlFiltroGridV" Name="id_destinazione" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="DdlFiltroGridV" Name="?" PropertyName="SelectedValue" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_id_destinazione" Type="Int32" />
<asp:Parameter Name="original_NomeDestinazione" Type="String" />
<asp:Parameter Name="original_NomeDestinazione" Type="String" />
<asp:Parameter Name="original_Utente" Type="String" />
<asp:Parameter Name="original_Utente" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="NomeCatalogo" Type="String" />
<asp:Parameter Name="PercorsoFile" Type="String" />
<asp:Parameter Name="Visibile" Type="Boolean" />
<asp:Parameter Name="DataCaricamento" Type="DateTime" />
<asp:Parameter Name="id_destinazione" Type="Int32" />
<asp:Parameter Name="utente" Type="String" />
<asp:Parameter Name="DataViaggio" Type="DateTime" />
<asp:Parameter Name="id_Struttura" Type="Int32" />
<asp:Parameter Name="id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="id_destinazione" Type="Int32" />
<asp:Parameter Name="NomeDestinazione" Type="String" />
<asp:Parameter Name="Utente" Type="String" />
</InsertParameters>
</asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" CellPadding="4"
DataSourceID="DbSourceCataloghi1" PageSize="5" EnableModelValidation="True"
ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:CommandField ButtonType="Button" CancelText="Annulla" DeleteText="Elimina"
EditText="Aggiorna" ShowDeleteButton="True" ShowEditButton="True"
UpdateText="Salva" />
<asp:BoundField DataField="utente" HeaderText="Utente" />
<asp:BoundField DataField="DataCaricamento" HeaderText="Data Inserzione" DataFormatString="{0:d}" HtmlEncode="false" />
<asp:BoundField DataField="NomeCatalogo" HeaderText="Nome" />
<asp:BoundField DataField="Nomedestinazione Destinazioni"
HeaderText="Destinazione" />
<asp:BoundField DataField="DataViaggio" HeaderText="Data Viaggio" DataFormatString="{0:d}" HtmlEncode="false" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<EmptyDataTemplate>
<span class="style1">Nessuna Offerta Presente</span>
</EmptyDataTemplate>
<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" />
</asp:GridView> nel code behind:
if (!this.IsPostBack)
{
this.DropDownList1.Items.Add(new ListItem("[Selezionare]", "-1"));
OleDbCommand command = null;
using (command = new OleDbCommand("SELECT id_destinazione, NomeDestinazione FROM destinazioni", this._Connection))
{
try
{
this.DropDownList1.DataSource = command.ExecuteReader();
this.DropDownList1.DataBind();
}
catch (Exception)
{
throw;
}
}
}
..
...
..
protected void ddlStrutture_SelectedIndexChanged(object sender, EventArgs e)
{
Int32 value = System.Convert.ToInt32(this.DropDownList1.SelectedValue);
this.ddlStruttura.Items.Clear();
this.ddlStruttura.Items.Add(new ListItem("[Seleziona]", "-1"));
this.ddlStruttura.Items.Add(new ListItem("Inserisci Nuovo Agriturismo", "1"));
if (value == -1)
{
this.ddlStruttura.Enabled = false;
}
else
{
OleDbCommand command = null;
using (command = new OleDbCommand("SELECT * FROM strutture WHERE id_destinazione = @id_destinazione", this._Connection))
{
command.Parameters.AddWithValue("id_destinazione", value);
try
{
this.ddlStruttura.DataSource = command.ExecuteReader();
this.ddlStruttura.DataBind();
}
catch (Exception)
{
throw;
}
this.ddlStruttura.Enabled = true;
}
}
if (value == 1)
{
txtAgriturismo.Visible = true;
txtAgriturismo.Enabled = true;
}
}
avete qualche idea del perchè succede questo? premetto che uso Visual Web Dev Exp e il Db è in Access...
grazie!