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:
.aspx:
avete qualche idea del perchè succede questo? premetto che uso Visual Web Dev Exp e il Db è in Access...codice:<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> <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; } }
grazie!

Rispondi quotando