Bonjour,
pour moi comme ca c'est le plus facile, mais il faut connaitre un peu de Linq.
je place les dates possibles dans une collection et je cherche les bonnes, la clef est le nom du control.
// par exemple
DateTime date_debut = new DateTime(2015, 1, 1, 12, 30, 0);
DateTime date_fin = new DateTime(2015, 1, 1, 15, 30, 0);
Dictionary<string, DateTime> dic = new Dictionary<string, DateTime>();
for (int i = 0; i < 23; i++) {
for (int j = 0; j < 2; j++) {
dic.Add(string.Format("B{0}_{1:00}", i, j * 30), new DateTime(2015, 1, 1, i, j * 30, 0));
}
}
foreach (var item in dic.Select(p => p).Where(z => z.Value < date_fin && z.Value >= date_debut)) {
Button bt = (Button)Page.FindControl(item.Key);
if (bt != null) {
bt.BackColor = System.Drawing.Color.Red;
}
}
plus simple encore sans collection et sans Linq
// par exemple
DateTime date_debut = new DateTime(2015, 1, 1, 12, 30, 0);
DateTime date_fin = new DateTime(2015, 1, 1, 15, 30, 0);
for (int i = 0; i < 23; i++) {
for (int j = 0; j < 2; j++) {
string Clef = string.Format("B{0}_{1:00}", i, j * 30);
DateTime LaDate = new DateTime(2015, 1, 1, i, j * 30, 0);
if (LaDate < date_fin && LaDate >= date_debut) {
Button bt = (Button)Page.FindControl(Clef);
if (bt != null) {
bt.BackColor = System.Drawing.Color.Red;
}
}
}
}
Attention dans les deux cas je considere que les controles sont avec 1 ou 2 digits pour les heures et 2 digits pour les minutes
bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Modifié par zuzu123 le 8/01/2015 à 17:13
8 janv. 2015 à 19:02
Pas avec le timeSpan, mais avec un string ou un int si
8 janv. 2015 à 20:27
8 janv. 2015 à 20:30
Montre le code que tu as essayé. Précise la ligne et s'il y a des variables leur contenu.