Sto implementando il Grafico Telerik con un enorme dato. Le etichette sull'asse x del grafico si sovrappongono. Ho superato questo problema ma non è affidabile a lungo termine.Elenco per restituire valori in intervalli per un campo specifico
Questi sono i Lista campi hanno:
FieldName DataType
Date DATETIME
DateString STRING
Unit DOUBLE
Price DOUBLE
X-Axis valore dell'etichetta viene da DateString
campo
Soluzione ho implementato
- Il MIN e MAX Data
DateString
campo sarà ritorno sempre - Per il resto, il ritorno di quei valori in cui nei giorni feriali è 'Lunedi'
Ecco code-
// Get min and max Date
DateTime minDate = DateTime.Now;
DateTime maxDate = DateTime.Now;
if (dtGas.Rows.Count > 0)
{
minDate = Convert.ToDateTime(dtGas.Compute("MIN([Date])", ""));
maxDate = Convert.ToDateTime(dtGas.Compute("MAX([Date])", ""));
}
// Group by 'Date' and 'DateString' | 'SUM' of Unit and 'Price'
var qGas = from x in dtGas.AsEnumerable()
group x by new
{
Date = x.Field<DateTime>("Date"),
DateString = x.Field<string>("DateString")
} into egroup
let isOne = egroup.Key.Date.DayOfWeek.ToString() == "Monday"
select new
{
Date = egroup.Key.Date,
DateString = minDate == egroup.Key.Date ?
(
egroup.Key.DateString
) :
(
maxDate == egroup.Key.Date ?
(
egroup.Key.DateString
) :
(
(isOne) ?
(
egroup.Key.DateString
) :
(" ")
)
),
Unit = egroup.Sum(r => r.Field<double>("Unit")),
Price = egroup.Sum(r => r.Field<double>("Price")),
};
Questa soluzione consente di restituire non tutti i valori, ma alcuni di loro. Quindi evitando sovrapposizioni. Ma in futuro man mano che i dati cresceranno, anche questa soluzione fallirà.
Soluzione bisogno di implementare
Un'idea che stavo pensando, ma non so come implementare è-
- Il MIN e MAX Data
DateString
campo sarà sempre tornare. [Come quello che sto facendo adesso] - Restituisce 8 valori in intervalli da MIN e MAX indipendentemente dal conteggio totale dell'elemento di elenco.
2.a. Ma se il conteggio delle liste è inferiore o uguale a 8, restituire tutti i valori.
Quindi, ad esempio, se in Elenco I sono presenti 32 valori. Dovrebbe restituirmi un totale di 10 valori nel campo DateString e il resto sarà una stringa vuota.
È difficile proporre una soluzione senza dati di esempio che illustrano dove fallisce – Plutonix