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!

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
ricardo78 wrote:
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

posta un po' dei BoundField, la causa potrebbero essere questi ultimi. .

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
Ciao Daniele, grazie per la risposta!

ecco alcuni BoundField:
            
<asp:BoundField DataField="id" HeaderText="id" />
<asp:BoundField DataField="NomeCatalogo" HeaderText="nome catalogo" />
<asp:BoundField DataField="dataCaricamento" DataFormatString="{0:d}" HtmlEncode="false" HeaderText="data" />



Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
Al PostBack trovi i parametri vuoti?

potrebbe dipendere da come funziona l'AccessDataSource, francamente non l'ho mai usato se non per farci 2-3 demo.

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
Ciao Daniele, anzitutto mille grazie !

Ora quando ad esempio faccio edit, i campi testo sono popolati dai valori presenti nel db, li cambio, faccio upload (o salva) e non vengono apportate le modifiche. Stessa cosa succede con la cancellazione, premo il relativo pulsante ma non viene di fatto cancellato niente.

Strana situazione, non credi?

Marina di Camerota OnLine
VicenzaSoftware:Creazione siti web
Forum Tecnologie
ricardo78 wrote:
Strana situazione, non credi?

possibile: è questo il motivo per cui non uso questi automatismi  dovresti mettere un debugger negli eventi Updating/Updated e compagnia del DataSource e controllare cosa sta facendo con i parametri.
.

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.