Inserire riga gridview ad codice..

lunedì 29 settembre 2008 - 16.04

stuzzo Profilo | Junior Member

Ciao a tutti!!!
Scusate la mia ignoranza, ma non riesco proprio ad uscirne fuori...
Ho un gridview con 3 colonne, modifica, cancella e un campo descrizione.
adesso dovrei aggiungere una riga al gridview....come devo fare?
Dopo aver ricavato dei dati, non dal DB, devo fare in modo di creare una riga con questi dati..quindi non devo far altro che metterli nel campo descrizione, visto che le altre 2 colonne sono command field.
non so recuperare la struttura del gridview in una riga nuova.

Vi ringrazio....
Alfredo Aiello

rossimarko Profilo | Guru

Ciao,

con che datasource viene popolata la gridview?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stuzzo Profilo | Junior Member

Ciao,
per farti capire...Questo gridview è un riepilogo sulle esperienze lavorative di un utente.
Quindi questo gridview può essere vuoto se non esistono esperienze, ma può succedere anche che sono presenti già alcune esperienze, le recupero e le visualizzo, ma l'utente potrebbe volerne aggiungere un'altra. e li che scatta il mio problema...perchè dovrei aggiungere una riga al gridview esistente che puoi capire che può essere sia vuoto che già riempito.

<asp:GridView ID="gvRiepilogo" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
<asp:TemplateField HeaderText="Esperienza"></asp:TemplateField>
</Columns>
</asp:GridView>

Ecco come l'ho dichiarato.
Ciao
Alfredo Aiello

rossimarko Profilo | Guru

Ma il datasource della griglia è una datatable? In quel caso puoi aggiungere una riga alla datatable e poi passare il tutto alla griglia
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stuzzo Profilo | Junior Member

>Ma il datasource della griglia è una datatable? In quel caso
>puoi aggiungere una riga alla datatable e poi passare il tutto
>alla griglia

Si, è un datatable, ma l'aggiunta di righe deve avvenire dopo che ho caricato il gridview. quindi carico i dati, l'utente vuole inserire un nuovo record, prendo i dati e li faccio visualizzare come una riga in più nel gridview caricato.

rossimarko Profilo | Guru

Se hai un pulsante che simula l'inserimento di un nuovo record puoi farlo all'interno dell'evento di quel pulsante. Ricarichi la datatable, inserisci la nuova riga e poi la passi al gridview.

In alternativa puoi usare il footer come riportato in questi esempi: http://geekswithblogs.net/casualjim/articles/51360.aspx e questo http://geekswithblogs.net/casualjim/archive/2006/05/04/77151.aspx.

Il secondo riporta una versione che funziona anche quando la griglia è vuota
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stuzzo Profilo | Junior Member

>Se hai un pulsante che simula l'inserimento di un nuovo record
>puoi farlo all'interno dell'evento di quel pulsante. Ricarichi
>la datatable, inserisci la nuova riga e poi la passi al gridview.

Infatti ho un tasto del tipo "aggiungi" e là dentro dovrei creare la riga. Io facevo così
if (dt == null)
{
dt = new DataTable();
}
if (gvRiepilogo.DataSource != null)
{
dt = (DataTable)gvRiepilogo.DataSource;
}
DataRow dr = dt.NewRow();
dr[2] = rigaLavoro;
dt.Rows.Add();
gvRiepilogo.DataSource = dt;
gvRiepilogo.DataBind();

In poche parole prendo quello che ci stava, gli aggiungo la riga e ricarico tutto, ma così come puoi ben notare, ho abbastanza problemi se il gridview è vuoto. Mi sembra strano che non ci sia un metodo che ti permette di aggiungere in maniera dinamica una riga al gridview, che abbia ovviamente le stesse caratteristiche del gridview stesso.

>In alternativa puoi usare il footer come riportato in questi
>esempi: http://geekswithblogs.net/casualjim/articles/51360.aspx
>e questo http://geekswithblogs.net/casualjim/archive/2006/05/04/77151.aspx.
>
>Il secondo riporta una versione che funziona anche quando la
>griglia è vuota

Il secondo esempio non è disponibile :(

Avevo pensato anche di creare un GridViewRow gvr, ma non so come dirgli di prendere lo stile del gridview e poi attaccarla.

se non ti è chiaro qualcosa, dimmi pure.

rossimarko Profilo | Guru

>
>Il secondo esempio non è disponibile :(
>

Ti rimetto il link al secondo esempio: http://geekswithblogs.net/casualjim/archive/2006/05/04/77151.aspx
Se non funziona prova a verificare il primo articolo, in fondo trovi il link a questo

Per quanto riguarda il codice che hai postato hai verificato se entra mai nell'if che ti riporto ?:
> if (gvRiepilogo.DataSource != null)
> {
> dt = (DataTable)gvRiepilogo.DataSource;
> }

Perchè dopo il postback il riferimento al datasource dovrebbe essere null e penso sia questa la causa del tuo problema (la datatable rimane vuota, senza colonne). Se ti servono i dati devi per forza ricaricarli da database prima di aggiungere la riga

-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5