RaouL_BennetH
29-02-2012, 23:26
Ciao a tutti :)
ho questo tipo di problema:
//Implementazione 1
var result = myCollection.Find(myQueryObject);
gridView.DataSource = result.OrderByDescending(x => x.AnyField);
gridView.DataBind();
protected void gridView_RowDataBound(object sender, GridViewEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
var myObj = e.Row.DataItem as MioOggetto;
if(myObj != null)
{
//all'interno del db le date possono variare in base a determinati criteri
//sono quindi costretto a prendere solo anno, mese e giorno
DateTime objTime = new DateTime(myObj.Year, myObj.Month, myObj.Day);
DateTime curTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
if(objTime <= curTime)
e.Row.CssClass = " customCssClass";
}
}
Questo primo approccio, mi funziona perfettamente, nel senso che se ho oggetti con una data minore o uguale a quella odierna, la row utilizza come colore di background quello definito nel css (rosso in questo caso).
//Implementazione 2 --- NON FUNZIONA ---
//Dal mio result devo anche fare dei "count" sulla collezione e quindi
var result = from o in myCollection.Find(myQueryObj)
select new
{
id = o.id,
ObjTime = o.DateFlash,
Concepts = o.Concept.Count,
bla
};
gridView.DataSource = result.OrderByDescending(x => x.AnyField);
gridView.DataBind();
Con questa seconda implementazione, lasciando invariato l'evento RowDataBound del gridView, non ottengo più il risultato dell'implementazione 1.
Qualcuno potrebbe farmi capire come mai ?
Grazie mille a tutti.
RaouL.
ho questo tipo di problema:
//Implementazione 1
var result = myCollection.Find(myQueryObject);
gridView.DataSource = result.OrderByDescending(x => x.AnyField);
gridView.DataBind();
protected void gridView_RowDataBound(object sender, GridViewEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
var myObj = e.Row.DataItem as MioOggetto;
if(myObj != null)
{
//all'interno del db le date possono variare in base a determinati criteri
//sono quindi costretto a prendere solo anno, mese e giorno
DateTime objTime = new DateTime(myObj.Year, myObj.Month, myObj.Day);
DateTime curTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
if(objTime <= curTime)
e.Row.CssClass = " customCssClass";
}
}
Questo primo approccio, mi funziona perfettamente, nel senso che se ho oggetti con una data minore o uguale a quella odierna, la row utilizza come colore di background quello definito nel css (rosso in questo caso).
//Implementazione 2 --- NON FUNZIONA ---
//Dal mio result devo anche fare dei "count" sulla collezione e quindi
var result = from o in myCollection.Find(myQueryObj)
select new
{
id = o.id,
ObjTime = o.DateFlash,
Concepts = o.Concept.Count,
bla
};
gridView.DataSource = result.OrderByDescending(x => x.AnyField);
gridView.DataBind();
Con questa seconda implementazione, lasciando invariato l'evento RowDataBound del gridView, non ottengo più il risultato dell'implementazione 1.
Qualcuno potrebbe farmi capire come mai ?
Grazie mille a tutti.
RaouL.