E.NewValues nulli all'evento GridView_RowUpdating con pagina collegata a template

Domanda E.NewValues nulli all'evento GridView_RowUpdating con pagina collegata a template

  • venerdì 4 maggio 2012 12:17
     
     

    Salve a tutti, ho un problema di questo tipo:

    ho una pagina collegata a un template, Content.Master. Quest'ultima è collegata a sua volta al template "di default" Site.master.

    Nella mia pagina aspx, ho una GridView collegata a un Object Data Source a sua volta collegato a una classe del mio BLL per recuperare/editare i dati. Quando carico la pagina la griglia viene correttamente popolata.

    Premo il pulsante di modifica, apporto una modifica e premo Aggiorna.
    Quando il codice arriva al GridView Row_Updating, i valori della collection E.NewValues sono vuoti... qualcuno mi sa dire perchè??

    Ecco il codice della mia pagina:

    <asp:ObjectDataSource ID="ODSIntORD" runat="server"
    DataObjectTypeName="RTM37.Core.ObjectModel.DecretoIntercettazioneOrdinaria"
    InsertMethod="Insert" MaximumRowsParameterName="totalRows" SelectMethod="LoadAll"
    SortParameterName="sortExpression" StartRowIndexParameterName="firstRow"
    TypeName="RTM37.BLL.DecretiIntORD" UpdateMethod="Update"
    onupdating="ODSIntORD_Updating" OldValuesParameterFormatString="old{0}"
    ConflictDetection="CompareAllValues">
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
    AllowSorting="True" AutoGenerateColumns="False" DataSourceID="ODSIntORD"
    onrowupdating="GridView1_RowUpdating" DataKeyNames="ID"
    onrowdatabound="GridView1_RowDataBound" ViewStateMode="Enabled"
    onrowediting="GridView1_RowEditing">
    <Columns>
    <asp:CommandField ShowEditButton="True" />
    <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="pkey"
    ReadOnly="True" />
    <asp:BoundField DataField="Anno" HeaderText="Anno" SortExpression="anno" />
    <asp:BoundField DataField="NumeroOrdine" HeaderText="Num ordine"
    SortExpression="numero" ReadOnly="True" />
    <asp:BoundField DataField="RGNR_Numero" HeaderText="RGNR numero"
    SortExpression="rgnr_num" />
    <asp:BoundField DataField="RGNR_Anno" HeaderText="RGNR Anno"
    SortExpression="rgnr_anno" />
    <asp:BoundField DataField="RGNR_Mod" HeaderText="RGNR Mod"
    SortExpression=" rgnr_mod" />
    <asp:BoundField DataField="NumeroRegistro_GIP" HeaderText="Num. Registro GIP"
    SortExpression="num_registro_gip" />
    <asp:BoundField DataField="DataRichiestaPM" DataFormatString="{0:dd\/MM\/yyyy}"
    HeaderText="Data Richiesta PM" SortExpression="dt_richiesta_pm" />
    <asp:BoundField DataField="DataDecretoAutorizzazioneGiudice"
    DataFormatString="{0:dd\/MM\/yyyy}"
    HeaderText="Data decreto Aut.Giudice"
    SortExpression="dt_decreto_aut_giudice" />
    <asp:BoundField DataField="DataDecretoPM" DataFormatString="{0:dd\/MM\/yyyy}"
    HeaderText="Data decreto PM" SortExpression="dt_decreto_pm" />
    <asp:BoundField DataField="ContenutoProvvGiudice"
    HeaderText="Contenuto provv. Giudice"
    SortExpression="contenuto_provvedimento_giudice" />
    <asp:BoundField DataField="NumeroUtenza" HeaderText="Numero utenza"
    SortExpression="num_utenza" />
    <asp:BoundField DataField="Intestatario" HeaderText="Intestatario"
    SortExpression="intestatario" />
    <asp:BoundField DataField="Usuario" HeaderText="Usuario"
    SortExpression="usuario" />
    <asp:BoundField DataField="DataOraInizio"
    HeaderText="Data/Ora inizio" SortExpression="dt_inizio_intercettazione" />
    <asp:BoundField DataField="DataOraTermine"
    HeaderText="Data/Ora Termine" SortExpression="dt_termine_intercettazione"
    ReadOnly="True" />
    <asp:BoundField DataField="NumeroNastri" HeaderText="Num. Supporti"
    SortExpression="numero_nastri" />
    <asp:BoundField DataField="Annotazioni" HeaderText="Annotazioni"
    SortExpression="annotazioni" />
    <asp:CheckBoxField DataField="IsAutorizzato" HeaderText="Aut."
    SortExpression="autorizzazione_intercettazione_ordinaria" />
    <asp:CheckBoxField DataField="CessazioneAnticipata"
    HeaderText="Cess. Anticipata" SortExpression="cess_anticipata" />
    <asp:TemplateField HeaderText="Magistrato" SortExpression="id_magistrato">
    <EditItemTemplate>
    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="NominativoMagistrato" DataValueField="ID" ViewStateMode="Enabled" SelectedValue='<%# Bind("Magistrato") %>' DataSourceID="ODSMagistrati">
    </asp:DropDownList>

    </EditItemTemplate>
    <ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Magistrato") %>'></asp:Label>

    </ItemTemplate>
    </asp:TemplateField>

    <asp:BoundField DataField="PG" HeaderText="PG" SortExpression="id_pg" />
    <asp:BoundField DataField="Fornitore" HeaderText="Fornitore"
    SortExpression="id_fornitore" />
    <asp:BoundField DataField="TipoIndagine" HeaderText="TipoIndagine"
    SortExpression="id_indagine" />

    </Columns>
    </asp:GridView>

    Al GV_RowUpdating:

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {


    string s = "";
    if ((e.NewValues["DataOraInizio"] != null) && (!String.IsNullOrEmpty(e.NewValues["DataOraInizio"].ToString())))
    {
    s = e.NewValues["DataOraInizio"].ToString();
    e.NewValues["DataOraInizio"] = Convert.ToDateTime(s);
    }
    if ((e.NewValues["DataOraTermine"] != null) && (!String.IsNullOrEmpty(e.NewValues["DataOraTermine"].ToString())))
    {
    s = e.NewValues["DataOraTermine"].ToString();
    e.NewValues["DataOraTermine"] = Convert.ToDateTime(s);
    }
    if ((e.NewValues["DataRichiestaPM"] != null) && (!String.IsNullOrEmpty(e.NewValues["DataRichiestaPM"].ToString())))
    {
    s = e.NewValues["DataRichiestaPM"].ToString();
    e.NewValues["DataRichiestaPM"] = Convert.ToDateTime(s);
    }
    if ((e.NewValues["DataDecretoAutorizzazioneGiudice"] != null) && (!String.IsNullOrEmpty(e.NewValues["DataDecretoAutorizzazioneGiudice"].ToString())))
    {
    s = e.NewValues["DataDecretoAutorizzazioneGiudice"].ToString();
    e.NewValues["DataDecretoAutorizzazioneGiudice"] = Convert.ToDateTime(s);
    }

    if ((e.NewValues["DataDecretoPM"] != null) && (!String.IsNullOrEmpty(e.NewValues["DataDecretoPM"].ToString())))
    {
    s = e.NewValues["DataDecretoPM"].ToString();
    e.NewValues["DataDecretoPM"] = Convert.ToDateTime(s);
    }

    //per magistrato
    if ((e.NewValues["Magistrato"] != null) && (!String.IsNullOrEmpty(e.NewValues["Magistrato"].ToString())))
    {

    s = e.NewValues["Magistrato"].ToString();
    e.NewValues["Magistrato"] = Convert.ToInt32(s);
    }

    if (e.OldValues["DataOraInizio"] != null)
    {
    s = e.OldValues["DataOraInizio"].ToString();
    e.OldValues["DataOraInizio"] = Convert.ToDateTime(s);
    }
    if (e.OldValues["DataOraTermine"] != null)
    {
    s = e.OldValues["DataOraTermine"].ToString();
    e.OldValues["DataOraTermine"] = Convert.ToDateTime(s);
    }

    if (e.OldValues["DataDecretoPM"] != null)
    {
    s = e.OldValues["DataDecretoPM"].ToString();
    e.OldValues["DataDecretoPM"] = Convert.ToDateTime(s);
    }

    if (e.OldValues["DataRichiestaPM"] != null)
    {
    s = e.OldValues["DataRichiestaPM"].ToString();
    e.OldValues["DataRichiestaPM"] = Convert.ToDateTime(s);
    }
    if (e.OldValues["DataDecretoAutorizzazioneGiudice"] != null)
    {
    s = e.OldValues["DataDecretoAutorizzazioneGiudice"].ToString();
    e.OldValues["DataDecretoAutorizzazioneGiudice"] = Convert.ToDateTime(s);
    }

    if (e.OldValues["Magistrato"] != null)
    {
    s = e.OldValues["Magistrato"].ToString();
    e.OldValues["Magistrato"] = Convert.ToInt32(s);
    }


    }

    La cosa interessante è che se la pagina non è collegata a nessun template l'aggiornamento avviene senza problemi.

    Ho provato a fare delle ricerche su google, ho già controllato che EnableViewState sia abilitato a livello di pagina per tt le pagine indicate, inoltre ho provato a recuperare i valori dalle celle tramite il metodo  ExtractValuesFromCell della GV ma niente da fare...

     i valori nuovi sono tutti nulli, mentre le chiavi e la collection OldValues sono valorizzati.

    Qualcuno sa dirmi cosa controllare ancora? Ogni aiuto sarà molto apprezzato !

    ;)