Ciao BrightSoul, grazie mille... infatti ora funziona meglio, ma... c'è un ma, ti spiego: Nell'evento RowCommand devo prendere il valore selezionato dalla drop per salvarlo nel db, nel tuo metodo c'era un piccolo errore, nel senso che ListItem.Add accetta 2 parametri di tipo string, quindi ho aggiunto un ToString() alla fine della riga, cosi:
 ddlArticolo.Items.Add(new ListItem(articolo.Descrizione_Articolo, articolo.ID_Articolo<b>.ToString()</b>));
solo che ora quando vado in debug ottengo un errore poiche il db si aspetta un numero e non una stringa, questa la porzione di codice che effettua l'insert (nel metodo RowCommand):
if (e.CommandName == "InsertNew")
        {
            GridViewRow row = GvReport.FooterRow;
            DropDownList ddlArticolo = row.FindControl("DdlArticoloNuovo") as DropDownList; //ID Articolo 
            DateTime DataCaricamento = DateTime.Now; // Data Caricamento
            FileUpload file = row.FindControl("NuovoFileReport") as FileUpload; // PDF Report
            FileUpload fileCmp = row.FindControl("upCMP") as FileUpload; // PDF CMP
            TextBox Note = row.FindControl("txtNuovoNote") as TextBox; //Note
            TextBox nLotto = row.FindControl("txtNlotto") as TextBox; //Num lotto
            TextBox nCMP = row.FindControl("txtCMP") as TextBox; //Num CMP

            if (ddlArticolo != null && DataCaricamento != null && file != null && Note != null && fileCmp != null && nLotto != null && nCMP != null)
            {
                try
                {
                    //Aggiungo il nuovo Gruppo
                    tbl_Report report = null;
                    report = new tbl_Report
                    {
                        DataCaricamento_Report = DataCaricamento,
                        Allegato_Report = file.FileBytes,
                        Note_Report = Note.Text,
                        ID_Articolo = Convert.ToInt32(ddlArticolo.SelectedValue),
                        Cmp = fileCmp.FileBytes,
                        Lotto = nLotto.Text,
                        NumCmp = nCMP.Text
                    };
                    var aggiungiReport = BusinessClass.CreaReport(report);
                    lblMsg.Visible = true;
                    lblMsg.Text = "Nuovo Report Salvato correttamente.";
                    //NomeGruppo.Text = "";
                    GvReport.DataSource = BusinessClass.selexReport();
                    GvReport.DataBind();
                }
                catch (Exception ex)
                {
                    lblErrore.Visible = true;
                    lblErrore.Text = "Attenzione, Errore: " + ex.ToString();
                }
            }
            GvReport.DataSource = BusinessClass.selexReport();
            GvReport.DataBind();
        }

A vista d'occhio sembrerebbe che il codice sia corretto (prima effettuo una conversione a stringa per poplare la drop, dopo lo riconverto in numero per fare il salvataggio) ma purtroppo c'è qualcosa che non va...

Grazie ancora...
Modificato da ricardo78 il 17 giugno 2013 08.02 -
Modificato da ricardo78 il 17 giugno 2013 08.03 -

Creazione Siti Vicenza
Posizionamento Siti - SEO
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Ricardo, prego!
qual è il testo dell'errore, esattamente?

Può darsi che il problema non sia su ddlArticolo.SelectedValue, infatti lo converti correttamente ad intero prima di assegnarlo alla proprietà ID_Articolo. Ti sei accertato, usando il debugger, che il suo valore sia numerico?

Vedo che hai usato la sintassi di object initialization per valorizzare le proprietà del nuovo tbl_Report. Va bene perché rende il codice succinto ma si debugga male perché è un'espressione unica. Porta fuori le istruzioni che possono generare un'eccezione, come appunto il Convert.ToInt32.
int IdArticolo = Convert.ToInt32(ddlArticolo.SelectedValue);
report = new tbl_Report {
  //...
  ID_Articolo = IdArticolo,
  //...
}

O meglio, per non dover avvolgere un try...catch attorno a tutto quel codice, che è un'operazione costosa.
int IdArticolo;
if (!int.TryParse(ddlArticolo.SelectedValue, out IdArticolo)){
   //avvisa l'utente, perché il valore selezionato non era numerico.
}


Comunque, il testo dell'errore ci aiuterà a capire meglio il problema.
ciao!
Modificato da BrightSoul il 17 giugno 2013 23.24 -

Enjoy learning and just keep making
BrightSoul ha scritto:
ciao Ricardo, prego!
qual è il testo dell'errore, esattamente?

Può darsi che il problema non sia su ddlArticolo.SelectedValue, infatti lo converti correttamente ad intero prima di assegnarlo alla proprietà ID_Articolo. Ti sei accertato, usando il debugger, che il suo valore sia numerico?

Ciao BrighSoul, infatti hai ragione, mi sono dimenticato di riportare l'errore! Eccolo:
Attenzione, Errore: System.FormatException: Formato della stringa di input non corretto. in System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) in System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) in System.Convert.ToInt32(String value) in Report.GvReport_RowCommand(Object sender, GridViewCommandEventArgs e) in c:\Users\QualitaBDK\Documents\Visual Studio 2010\WebSites\qualita\Report.aspx.cs:riga 210

Ad ogni modo andando in debug e fermando con un breakpoint proprio sull'object initialization ho potuto vedere che la dropdown è nulla e credo molto probabilmente che questo sia la causa dell'errore...

...
Porta fuori le istruzioni che possono generare un'eccezione, come appunto il Convert.ToInt32.
int IdArticolo = Convert.ToInt32(ddlArticolo.SelectedValue);
report = new tbl_Report {
  //...
  ID_Articolo = IdArticolo,
  //...
}

O meglio, per non dover avvolgere un try...catch attorno a tutto quel codice, che è un'operazione costosa.
int IdArticolo;
if (!int.TryParse(ddlArticolo.SelectedValue, out IdArticolo)){
   //avvisa l'utente, perché il valore selezionato non era numerico.
}


Comunque, il testo dell'errore ci aiuterà a capire meglio il problema.
ciao!
Modificato da BrightSoul il 17 giugno 2013 23.24 -

Infatti forse meglio se aspetto prima di fare qualche modifica, almeno da vedere se risolviamo la questione!

Creazione Siti Vicenza
Posizionamento Siti - SEO
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

ricardo78 ha scritto:

ho potuto vedere che la dropdown è nulla
sei sicuro? perché se ddlArticolo fosse stata null, il flusso di esecuzione non sarebbe entrato in questo if.
if (ddlArticolo != null && ...

Può darsi che sia la sua proprietà SelectedValue ad essere vuota. In tal caso bisogna capire come mai non porta invece il valore selezionato dall'utente. A naso direi che, da qualche parte nel codice, la dropdownlist viene svuotata e ri-popolata di nuovi elementi (motivo per cui il SelectedValue si "resetterebbe"), ma è solo un'ipotesi... Non ti so dire altro, purtroppo, avrei bisogno di vedere il codice completo (pagina aspx + codefile) e provare a riprodurre il problema in locale.

ciao
Modificato da BrightSoul il 18 giugno 2013 23.06 -

Enjoy learning and just keep making
Ciao BrightSoul, infatti la cosa è un po anomala... ti riporto tutto il codice:

.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" MaintainScrollPositionOnPostback="true"
    CodeFile="Report.aspx.cs" Inherits="Report" EnableEventValidation="true" EnableViewState="false" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
    <h2>
        Gestione REPORT</h2>
    <asp:GridView ID="GvReport" runat="server" AutoGenerateColumns="False" ShowFooter="True" 
        CssClass="grid" OnRowCommand="GvReport_RowCommand" DataKeyNames="ID_Report"  OnRowDeleting="GvReport_RowDeleting"
        CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCancelingEdit="GvReport_RowCancelEdit"
        OnRowEditing="GvReport_RowEditing" OnRowUpdating="GvReport_RowUpdate" OnRowDataBound="GvReport_RowDataBound"
         PageSize="10" PagerStyle-Font-Size="Medium" AllowPaging="true" OnPageIndexChanging="GvReportPaging">
        <AlternatingRowStyle BackColor="White" />
        <Columns>

            <asp:TemplateField HeaderText="Articolo" ItemStyle-HorizontalAlign="Center">
                <EditItemTemplate>
                    <asp:DropDownList ID="ddlGruppoEdit" runat="server" AutoPostBack="true" Visible="false" OnSelectedIndexChanged="selectGruppoEditChange" />
                    <asp:DropDownList ID="ddlArticoloEdit" runat="server" />
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblArticolo" runat="server" />
                    <br />
                    <asp:Label ID="hiddenLbl" runat="server" Text='<%# Bind("ID_Articolo") %>' Visible="true" />
                </ItemTemplate>
                <FooterTemplate>
                    <strong>NUOVO: </strong><br />
                    <asp:DropDownList ID="ddlGruppo" runat="server" OnSelectedIndexChanged="selectGruppoChange" AutoPostBack="true" />
                    <br />
                    <asp:Label runat="server" ID="lblSelArt" Visible="false"></asp:Label>
                    <br />
                    <asp:DropDownList ID="DdlArticoloNuovo" runat="server" Visible="false"></asp:DropDownList>
                    <asp:Label ID="msgNoResult" runat="server" visible="false" Font-Bold="true" ForeColor="Maroon" />
                </FooterTemplate>
            </asp:TemplateField>


            <asp:TemplateField HeaderText="Data Creazione" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <asp:Label ID="lblData" runat="server" Text='<%# Bind("DataCaricamento_Report") %>'></asp:Label>
                </ItemTemplate>
                <FooterTemplate>
                    N. Lotto: <asp:TextBox ID="txtNlotto" runat="server" Columns="10"></asp:TextBox>
                    <br />
                    N. C.M.P.<asp:TextBox ID="txtCMP" runat="server" Columns="10"></asp:TextBox>
                </FooterTemplate>
            </asp:TemplateField>


            <asp:TemplateField HeaderText="Report PDF" ItemStyle-HorizontalAlign="Center">
                <EditItemTemplate>
                N. LOTTO
                <asp:TextBox ID="editNumLotto" runat="server" Text='<%#Bind ("Lotto") %>' Columns="10" />
                <br />
                    <asp:FileUpload ID="EditFileReport" runat="server" CssClass="" Width="150" />
                </EditItemTemplate>
                <ItemTemplate>
                <asp:Label ID="lblLotto" runat="server" Text='<%# Bind("Lotto") %>' />
                <br />
                    <asp:Button ID="ScaricaReport" CommandArgument='<%#Eval ("ID_Report") %>' CommandName="apriReport"
                        runat="server" Text="Report" CssClass="" />
                </ItemTemplate>
                <FooterTemplate>
                    Carica Report
                    <br />
                    <asp:FileUpload ID="NuovoFileReport" runat="server" CssClass="" Width="150" />
                </FooterTemplate>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="C.M.P." ItemStyle-HorizontalAlign="Center">
                <EditItemTemplate>
                N. C.M.P.
                <asp:TextBox ID="editNumCMP" runat="server" Text='<%#Bind ("NumCmp") %>' Columns="10" />
                <br />
                    <asp:FileUpload ID="EditFileCMP" runat="server" CssClass="" Width="150" />
                </EditItemTemplate>
                <ItemTemplate>
                <asp:Label ID="lblCmp" runat="server" Text='<%# Bind("NumCmp") %>' />
                <br />
                    <asp:Button ID="ScaricaCMP" CommandArgument='<%#Eval ("ID_Report") %>' CommandName="apriCMP"
                        runat="server" Text="C.M.P." CssClass="" />
                </ItemTemplate>
                <FooterTemplate>
                    Carica C.M.P.
                    <br />
                    <asp:FileUpload ID="upCMP" runat="server" Width="150" />
                </FooterTemplate>
            </asp:TemplateField>


            <asp:TemplateField HeaderText="Annotazioni Interne" ItemStyle-HorizontalAlign="Center">
                <EditItemTemplate>
                    <asp:TextBox ID="txtEditNote" Height="50" Font-Names="Verdana" Font-Size="Small" TextMode="MultiLine" Wrap="true" Text='<%#Eval ("Note_Report") %>' runat="server" CssClass="" />
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:TextBox Height="50" Font-Names="Verdana" Font-Size="Small" TextMode="MultiLine" Wrap="true" ID="lblNoteReport" runat="server" Text='<%#Bind ("Note_Report") %>' CssClass="" />
                </ItemTemplate>
                <FooterTemplate>
                    <asp:TextBox Height="50" Font-Names="Verdana" Font-Size="Small" TextMode="MultiLine" Wrap="true" ID="txtNuovoNote" runat="server" CssClass="" />
                </FooterTemplate>
            </asp:TemplateField>


            <asp:TemplateField HeaderText="Gestisci" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <asp:LinkButton ID="lnkEdit" runat="server" Text="" CommandName="Edit" ToolTip="Modifica"
                        CommandArgument=''><img src="Images/editButtonSmall.gif" alt="Edita" style="border: 0" /></asp:LinkButton>
                    <asp:LinkButton ID="lnkDelete" runat="server" Text="Delete" CommandName="Delete"
                        ToolTip="Elimina" OnClientClick='return confirm("Sei Sicuro Voler Cancellare questo dato?");'
                        CommandArgument=''><img src="Images/trash.png" width="25px" style="border: 0" alt="Elimina" /></asp:LinkButton>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:LinkButton ID="lnkInsert" runat="server" Text="" ValidationGroup="editGrp" CommandName="Update"
                        ToolTip="Salva" CommandArgument=''><img src="Images/add_button.png" alt="Salva" style="border: 0" /></asp:LinkButton>
                    <asp:LinkButton ID="lnkCancel" runat="server" Text="" CommandName="Cancel" ToolTip="Annulla"
                        CommandArgument=''><img src="Images/refresh.png" alt="Annulla" style="border: 0" /></asp:LinkButton>
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:LinkButton ID="lnkInsert" runat="server" Text="" ValidationGroup="newGrp" CommandName="InsertNew"
                        ToolTip="Aggiungi Nuovo" CommandArgument=''><img src="Images/add_button.png" alt="Aggiungi Nuovo" style="border: 0" /></asp:LinkButton>
                    <asp:LinkButton ID="lnkCancel" runat="server" Text="" CommandName="CancelNew" ToolTip="Annulla"
                        CommandArgument=''><img src="Images/refresh.png" alt="Aggiorna" style="border: 0" /></asp:LinkButton>
                </FooterTemplate>
            </asp:TemplateField>

        </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:Label ID="lblErrore" runat="server" Style="color: #FF0000; font-weight: 700"></asp:Label>
        &nbsp;<asp:Label ID="lblMsg" runat="server" Style="color: #00CC00; font-weight: 700"></asp:Label>

</asp:Content>


.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DatabaseReportModel;


public partial class Report : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        BindData();
    }

    void BindData()
    {
        var bindReport = BusinessClass.selexReport();
        if (bindReport.Count > 0)
        {
            GvReport.DataSource = bindReport;
            GvReport.DataBind();
        }
        else
        {
            var obj = new List<tbl_Report>();
            obj.Add(new tbl_Report());

            // Imposto il gridview perche si veda se non ci sono dati
            GvReport.DataSource = obj;
            GvReport.DataBind();
            int columnsCount = GvReport.Columns.Count;
            GvReport.Rows[0].Cells.Clear(); //Pulisce tutte le celle della riga
            GvReport.Rows[0].Cells.Add(new TableCell()); // Aggiunge una cella vuota
            GvReport.Rows[0].Cells[0].ColumnSpan = columnsCount; // Imposta la colonna con la nuova cella aggiunta

            // Settagio stili
            GvReport.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
            GvReport.Rows[0].Cells[0].ForeColor = System.Drawing.Color.Red;
            GvReport.Rows[0].Cells[0].Font.Bold = true;

            // Imposto il testo "Nessun record trovato"
            GvReport.Rows[0].Cells[0].Text = "NESSUN REPORT PRESENTE OPPURE NON E' STATO ANCORA INSERITO ALCUN REPORT";
        }

    }

    protected void GvReport_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        Label articolo = null;
        Label nascosta = null;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            articolo = e.Row.FindControl("lblArticolo") as Label;
            nascosta = e.Row.FindControl("hiddenLbl") as Label;
        }
        if (nascosta != null)
        {
            int nGruppo = Convert.ToInt32(e.Row.RowIndex);
            int nArticolo = Convert.ToInt32(nascosta.Text);
            var idGruppoHidden = BusinessClass.SelezArticolo(nArticolo);
            articolo.Text = idGruppoHidden.Descrizione_Articolo;
        }

        DropDownList ddl = null;
        DropDownList ddl2 = null;
        DropDownList ddl3 = null;
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            ddl = e.Row.FindControl("DdlArticoloNuovo") as DropDownList;
            ddl2 = e.Row.FindControl("ddlGruppo") as DropDownList;
            ddl3 = e.Row.FindControl("ddlGruppoEdit") as DropDownList;
        }

        //if (e.Row.RowType == DataControlRowType.DataRow) // Popola la ddl articoli nel gridview edit
        //{
        //    ddl = e.Row.FindControl("ddlArticoloEdit") as DropDownList;
        //}

        if (ddl != null)
        {
            var ddlDataSource = BusinessClass.SelezArticolo();
            ddl.DataSource = ddlDataSource;
            ddl.DataTextField = "Descrizione_Articolo";
            ddl.DataValueField = "ID_Articolo";
            ddl.DataBind();
            //ddl.Items.Insert(0, new System.Web.UI.WebControls.ListItem("Riseleziona il Gruppo"));
        }

        if (ddl2 != null)
        {
            var ddl2DataSource = BusinessClass.mostraGruppi();
            ddl2.DataSource = ddl2DataSource;
            ddl2.DataTextField = "Nome_Gruppo_Gruppo_Articoli";
            ddl2.DataValueField = "ID_Gruppo_Articoli";
            ddl2.DataBind();
            ddl2.Items.Insert(0, new System.Web.UI.WebControls.ListItem("- GRUPPO -"));
        }

        if (e.Row.RowType == DataControlRowType.DataRow) // Popola la ddl gruppi nel gridview edit
        {
            ddl3 = e.Row.FindControl("ddlGruppoEdit") as DropDownList;
        }

        if (ddl3 != null)
        {
            var ddl3DataSource = BusinessClass.mostraGruppi();
            ddl3.DataSource = ddl3DataSource;
            ddl3.DataTextField = "Nome_Gruppo_Gruppo_Articoli";
            ddl3.DataValueField = "ID_Gruppo_Articoli";
            ddl3.DataBind();
            ddl3.Items.Insert(0, new System.Web.UI.WebControls.ListItem("(GRUPPO)"));
        }

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Button btn = e.Row.FindControl("ScaricaDisegno") as Button;
            //btn.Text = "OK";
        }
    }

    protected void GvReport_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GvReport.EditIndex = e.NewEditIndex;
        GvReport.DataBind();
    }

    protected void GvReport_RowCancelEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GvReport.EditIndex = -1;
        GvReport.DataBind();
    }

    protected void GvReport_RowUpdate(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row = GvReport.Rows[e.RowIndex];
        TextBox Note = row.FindControl("txtEditNote") as TextBox; // Note
        TextBox Lotto = row.FindControl("editNumLotto") as TextBox; // Lotto
        TextBox nCMP = row.FindControl("editNumCMP") as TextBox; // Num CMP
        DateTime data = DateTime.Now; // Aggiorno la data
        FileUpload file = row.FindControl("EditFileReport") as FileUpload; // File Report
        FileUpload fileCertificato = row.FindControl("EditFileCMP") as FileUpload; // File CMP
        DropDownList articolo = row.FindControl("ddlArticoloEdit") as DropDownList; //Gruppo Articoli

        if (Note != null && data != null && articolo != null && file != null && Lotto != null && nCMP != null && fileCertificato != null)
        {
            if (file.HasFile)
            {
                try
                {
                    int id = Convert.ToInt32(GvReport.DataKeys[e.RowIndex].Value);
                    int idReport = Convert.ToInt32(articolo.SelectedValue);
                    BusinessClass.aggiornaReport(id, Note.Text, Lotto.Text, nCMP.Text, data, file.FileBytes, fileCertificato.FileBytes);
                    lblMsg.Text = "Report Aggiornato";
                }
                catch (Exception ex)
                {
                    lblErrore.Text = "Errore: " + ex.ToString();
                }
            }

            else
            {
                try
                {
                    int id = Convert.ToInt32(GvReport.DataKeys[e.RowIndex].Value);
                    int idReport = Convert.ToInt32(articolo.SelectedValue);
                    BusinessClass.aggiornaReport(id, Note.Text, Lotto.Text, nCMP.Text, data);
                    lblMsg.Text = "Report Aggiornato";
                }
                catch (Exception ex)
                {
                    lblErrore.Text = "Errore: " + ex.ToString();
                }
            }

        }


        else
        {
            lblErrore.Text = "Devi Completare tutti i campi prima di aggiornare la riga";
        }

        GvReport.EditIndex = -1;
        GvReport.DataSource = BusinessClass.selexReport();
        GvReport.DataBind();
    }

    protected void GvReport_RowCommand(Object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "InsertNew")
        {
            GridViewRow row = GvReport.FooterRow;
            DropDownList ddlArticolo = row.FindControl("DdlArticoloNuovo") as DropDownList; //ID Articolo
            DateTime DataCaricamento = DateTime.Now; // Data Caricamento
            FileUpload file = row.FindControl("NuovoFileReport") as FileUpload; // PDF Report
            FileUpload fileCmp = row.FindControl("upCMP") as FileUpload; // PDF CMP
            TextBox Note = row.FindControl("txtNuovoNote") as TextBox; //Note
            TextBox nLotto = row.FindControl("txtNlotto") as TextBox; //Num lotto
            TextBox nCMP = row.FindControl("txtCMP") as TextBox; //Num CMP

            if (ddlArticolo != null && DataCaricamento != null && file != null && Note != null && fileCmp != null && nLotto != null && nCMP != null)
            {
                try
                {
                    //Aggiungo il nuovo Gruppo
                    tbl_Report report = null;
                    report = new tbl_Report
                    {
                        DataCaricamento_Report = DataCaricamento,
                        Allegato_Report = file.FileBytes,
                        Note_Report = Note.Text,
                        ID_Articolo = Convert.ToInt32(ddlArticolo.SelectedValue),
                        Cmp = fileCmp.FileBytes,
                        Lotto = nLotto.Text,
                        NumCmp = nCMP.Text
                    };
                    var aggiungiReport = BusinessClass.CreaReport(report);
                    lblMsg.Visible = true;
                    lblMsg.Text = "Nuovo Report Salvato correttamente.";
                    //NomeGruppo.Text = "";
                    GvReport.DataSource = BusinessClass.selexReport();
                    GvReport.DataBind();
                }
                catch (Exception ex)
                {
                    lblErrore.Visible = true;
                    lblErrore.Text = "Attenzione, Errore: " + ex.ToString();
                }
            }
            GvReport.DataSource = BusinessClass.selexReport();
            GvReport.DataBind();
        }

        if (e.CommandName == "apriReport")
        {
            var myId = e.CommandArgument;
            var report = BusinessClass.selexReport(Convert.ToInt32(myId));

            var binaryPdf = report.Allegato_Report;
            string nomeFile = "BDK-report_" + report.DataCaricamento_Report.Date + "-" + report.Lotto;
            try
            {
                if (e.CommandArgument != null)
                {
                    if (binaryPdf != null)
                    {
                        Response.Clear();
                        Response.ContentType = "Application/x-pdf";
                        Response.AppendHeader("Content-Length", binaryPdf.Length.ToString());
                        Response.AppendHeader("content-disposition", "attachment; filename=" + nomeFile + ".pdf");
                        Response.BinaryWrite(binaryPdf);
                        //Response.Flush();
                        Response.End();
                    }
                    else
                    {
                        lblErrore.Text = "Nessun File Disponibile";
                    }
                }
            }
            catch (Exception ex)
            {
                lblErrore.Text = "Errore: " + ex.ToString();
            }
        }

        if (e.CommandName == "apriCMP")
        {
            var myId = e.CommandArgument;
            var report = BusinessClass.selexReport(Convert.ToInt32(myId));

            var binaryPdf = report.Cmp;
            string nomeFile = report.NumCmp; //report.ID_Report.ToString();
            try
            {
                if (e.CommandArgument != null)
                {
                    if (binaryPdf != null)
                    {
                        Response.Clear();
                        Response.ContentType = "Application/x-pdf";
                        Response.AppendHeader("Content-Length", binaryPdf.Length.ToString());
                        Response.AppendHeader("content-disposition", "attachment; filename=" + nomeFile + ".pdf");
                        Response.BinaryWrite(binaryPdf);
                        //Response.Flush();
                        Response.End();
                    }
                    else
                    {
                        lblErrore.Text = "Nessun File Disponibile";
                    }
                }
            }
            catch (Exception ex)
            {
                lblErrore.Text = "Errore: " + ex.ToString();
            }
        }

    }

    protected void GvReport_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {
            int id = Convert.ToInt32(GvReport.DataKeys[e.RowIndex].Value);
            BusinessClass.eliminaReport(id);
        }
        catch (Exception ex)
        {
            lblErrore.Text = ex.ToString();
        }
        lblMsg.Text = "Report eliminato";
        GvReport.DataSource = BusinessClass.selexReport();
        GvReport.DataBind();
    }

    protected void ddlGruppo_SelectedIndexChanged(object sender, EventArgs e)
    {
    }

    protected void GvReportPaging(object sender, GridViewPageEventArgs e)
    {
        GvReport.PageIndex = e.NewPageIndex;
        GvReport.DataBind();
    }

    // Usato per popolare le ddl nel footer
    protected void selectGruppoChange(object sender, EventArgs e)
    {
        // Ottengo le info dalla ddl gruppo
        DropDownList gruppo = GvReport.FooterRow.FindControl("ddlGruppo") as DropDownList;
        int idGroup = Convert.ToInt32(gruppo.SelectedValue);
        // Eseguo la query sulla tabella articoli in base alla scelta
        var selezionaArticolo = BusinessClass.filtraArticoloPerGruppo(idGroup);
        if (selezionaArticolo.Count() != 0)
        {
            // Ottengo le info dalla ddl articoli ed assegno il risultato della query precedente
            DropDownList ddlArticolo = GvReport.FooterRow.FindControl("DdlArticoloNuovo") as DropDownList;
            ddlArticolo.Visible = true;
            ddlArticolo.Items.Clear();
            ddlArticolo.Items.Add(new ListItem("- Scegli l'articolo - ", ""));
            foreach (var articolo in selezionaArticolo)
            {
                ddlArticolo.Items.Add(new ListItem(articolo.Descrizione_Articolo, articolo.ID_Articolo.ToString()));
            }
            Label lblSelArt = GvReport.FooterRow.FindControl("lblSelArt") as Label;
            lblSelArt.Visible = true;
            lblSelArt.Text = "Scegli l'Articolo: ";

        }
        else
        {
            Label lblMsgNoResult = GvReport.FooterRow.FindControl("msgNoResult") as Label;
            lblMsgNoResult.Visible = true;
            lblMsgNoResult.Text = "Nessun articolo trovato<br /> per il gruppo scelto";

        }
    }

    // Usato per popolare le ddl in modalità edit
    protected void selectGruppoEditChange(object sender, EventArgs e)
    {
        //if (Page.IsPostBack)
        //{

        //    // Ottengo le info dalla ddl gruppo
        //    DropDownList gruppo = GvReport.FindControl("ddlGruppoEdit") as DropDownList;
        //    int idGroup = Convert.ToInt32(gruppo.SelectedValue);
        //    // Eseguo la query sulla tabella articoli in base alla scelta
        //    var selezionaArticolo = BusinessClass.filtraArticoloPerGruppo(idGroup);
        //    if (selezionaArticolo != null)
        //    {
        //        // Ottengo le info dalla ddl articoli ed assegno il risultato della query precedente
        //        DropDownList ddlArticolo = GvReport.FindControl("ddlArticoloEdit") as DropDownList;
        //        ddlArticolo.DataSource = selezionaArticolo;
        //        ddlArticolo.DataTextField = "Descrizione_Articolo";
        //        ddlArticolo.DataValueField = "ID_Articolo";
        //        ddlArticolo.DataBind();
        //    }
        //    else
        //    {
        //        DropDownList ddlArticolo = GvReport.FindControl("ddlArticoloEdit") as DropDownList;
        //        //ddlArticolo.DataSource = selezionaArticolo;
        //        //ddlArticolo.DataTextField = "Descrizione_Articolo";
        //        //ddlArticolo.DataValueField = "ID_Articolo";
        //        //ddlArticolo.DataBind();
        //        ddlArticolo.Items.Insert(0, new System.Web.UI.WebControls.ListItem("Nessun Risultato"));

        //    }
        //}
    }


}


Grazie mille...

Creazione Siti Vicenza
Posizionamento Siti - SEO
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
il problema potrebbe essere qui:
protected void Page_Load(object sender, EventArgs e){
        BindData();
}

Fare il binding nel Page_Load, secondo me, è troppo tardi. Prova a cambiarlo con Page_Init.

I controlli ASP.NET possono mantenere il loro valore attraverso i postback solo grazie ad una fase che nel ciclo di vita della pagina si verifica proprio prima del Page_Load.

Fare il binding dopo quella fase (cioè al Page_Load), ne vanifica l'utilità e, come conseguenza, perderai il valore indicato dall'utente.

ciao
Modificato da BrightSoul il 20 giugno 2013 00.21 -

Enjoy learning and just keep making
Ciao BrightSoul, intanto grazie per quell'immagine con il riepilogo del ciclo di vita di una pagina (interessante!), ho fatto la modofica indicata ma nulla... ho potuto anche verificare che la ddl risulta sempre nulla, sebben entri nel ciclo if... ti invio per mail uno screenshot, ok?

Grazie,

Ricardo.

Creazione Siti Vicenza
Posizionamento Siti - SEO

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.