17 messaggi dal 08 aprile 2005
ciao ragazzi,

ho una detailsview che viene popolata con i dati di un db. La colonna del db che mi interessa è "Numero".
Se è verificata una certa condizione voglio che appaia una cosa diversa nella detailsview.


Vorrei cioè fare questo:

protected void DetailsViewAutore_ItemCreated(object sender, EventArgs e)
{
// Prima riga del controllo (formato da 2 colonne e svariate righe).
// Questa riga è una riga "dummy" (perchè la riga associata all'attributo
// "Numero" del db vuole solo interi e io devo scrivere una stringa)
DetailsViewRow dvr = DetailsViewAutore.Rows[0];

if (valore "Numero" dal database > 5000)
{
dvr.Cells[1].Text = "Offerte "+ numeroDalDb-5000;
}
else
{
dvr.Cells[1].Text = numeroDalDb;
}
}

come faccio a "prendere" questo valore Numero dal db???
detailsView.DataItem ti dà l'object di riferimento al record/oggetto che sta caricando. Quindi fai il cast e recuperi il valore come fai per esempio per RowDataBound del gridView.

Ciao

Il mio blog
Homepage
17 messaggi dal 08 aprile 2005
Grazie ricciolo!

Però
mi si crea un ulteriore problema (non sono molto pratico con asp.net).

La detailsview prende un parametro da una gridview ed esegue una query tipo SELECT * FROM Libri WHERE ID_Libro Like ParametroDallaGridView.


Con il codice che riporto qui di seguito, la prima volta che seleziono una riga dalla gridview funziona tutto bene e nella prima riga della detailsview vedo esattamente quello di cui ho bisogno. Se seleziono un'altra riga però, ricevo un messaggio di errore perchè drv.Row["Numero"] è null.


che devo fare!?!???



protected void DetailsViewAutore_ItemCreated(object sender, EventArgs e)
{
if (DetailsViewAutore.Rows.Count > 0)
{
//DetailsViewRow dvr = DetailsViewAutore.Rows[0];
DataRowView drv = (DataRowView)DetailsViewAutore.DataItem;

int numeroDalDb = Convert.ToInt32(drv.Row["Numero"]);

if (numeroDalDb > 5000)
{
DetailsViewAutore.Rows[0].Cells[1].Text = "Offerte "+ (numeroDalDb-5000).ToString();
}
else
{
DetailsViewAutore.Rows[0].Cells[1].Text = numeroDalDb.ToString();
}

}

}

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.