51 messaggi dal 15 maggio 2012
Salve a tutti,
Sto facendo dei test in asp.net e sto cercando di creare una semplice applicazione che mi permetta di modificare i record di una gridview in una pagina differente da quella della lista dei record.

Nella pagina di default ho una gridview che mi mostra una lista di persone con vari dati, alla fine dei campi c'è un link "modifica" che reindirizza alla pagina di dettaglio passando un parametro nell'url.

<asp:TemplateField>
     <ItemTemplate>
           <asp:HyperLink Text="Edit" 
             NavigateUrl='<%# "~/Dettaglio.aspx?cd=" + Eval("CdAgenti") %>' 
             runat="server"></asp:HyperLink>
      </ItemTemplate>
</asp:TemplateField>


nella pagina di dettaglio recupero il valore "cd" per eseguire la query nel controllo apposito:

<asp:SqlDataSource ... 
     SelectCommand="SELECT * FROM [Agenti] WHERE ([CdAgenti] = @CdAgenti)" ... 
   <SelectParameters>
      <asp:QueryStringParameter DefaultValue="" 
                                Name="CdAgenti" 
                                QueryStringField="cd" 
                                Type="String" />
   </SelectParameters>



Mi viene così proposta una nuova gridview con i dati del record selezionato,questa contiene però un bottone "edit" di default:

<Columns>
    <asp:BoundField DataField="CdAgenti" HeaderText="CdAgenti" ReadOnly="True" SortExpression="CdAgenti" />
    <asp:BoundField DataField="Descrizion" HeaderText="Descrizion" SortExpression="Descrizion" />
    <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
    <asp:CommandField ShowEditButton="True"/>
</Columns>


Ciò che vorrei ottenere è l'update dei campi di questo record direttamente da quest'ultima schermata utilizzando il controllo di default.

Ho provato inserendo una stringa di update nel sqldatasource in questo modo:

<asp:SqlDataSource ... 
        UpdateCommand="UPDATE [Agenti] SET descrizion = @Descrizion,
                       Email = @Email 
                       WHERE [CdAgenti] = @cdagenti"> ...
  <UpdateParameters>
     <asp:QueryStringParameter Name="cdagenti" QueryStringField="cd" />
     <asp:FormParameter DefaultValue="" FormField="Descrizion" Name="Descrizion" />
     <asp:FormParameter DefaultValue="" FormField="Email" Name="Email" />
  </UpdateParameters>
 </asp:SqlDataSource>


Ma non riesco a recuperare i valori dalla gridview.
C'è un modo per realizzare ciò che sto cercando di fare?
8 messaggi dal 27 luglio 2013
Ciao,
ma nella pagina di dettaglio non ti conviene usare una DetailsView?

metti il parametro DefaultMode="Edit" ed in questo modo i campi sono già pronti per essere modificati
51 messaggi dal 15 maggio 2012
Sberegondo ha scritto:
Ciao,
ma nella pagina di dettaglio non ti conviene usare una DetailsView?

metti il parametro DefaultMode="Edit" ed in questo modo i campi sono già pronti per essere modificati


Si in effetti ho risolto così alla fine..grazie! :)

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.