OVH Cloud OVH Cloud

afficher calendar dans datagrid ?

11 réponses
Avatar
jp magne
bonjour,

comment afficher toue les jours d' un mois selectionné avec calendar
dans un datagrid sous forme de 1er champ d' une ligne ?
un mois de 31 jours affichera 31 lignes avec un champ indiquant la semaine,
le jour et la date.

merci de m' expliquer;

jpm

10 réponses

1 2
Avatar
Zazar
Bonjour,

comment afficher toue les jours d' un mois selectionné avec calendar
dans un datagrid sous forme de 1er champ d' une ligne ?
un mois de 31 jours affichera 31 lignes avec un champ indiquant la
semaine,
le jour et la date.




Je n'ai pas bien compris ce que vous voulez faire. Pouvez vous reformuler
votre question ?
Sinon de manière générale, si vous voulez afficher des données dans un
datagrid, vous pouvez faire comme suit :
Créer une classe exposant les colonnes du datagrid en tant que propriété :
class MyClass {
DateTime mydate;
string myColl2, myColl3, ...;
public DateTime MyDate {
get {
return myDate;
}
set {
myDate = value;
}
}
//idem avec les autres colonnes
}
Ensuite vous créez un ArrayList et vous placez vos données dedans :
ArrayList mylist = new ArrayList();
MyClass myVar;
myVar = new MyClass;
myVar.MyDate = DateTime.Now;
myVar.MyColl2 = "BLAH";
// ...
myList.Add(myVar);
myVar = new MyClass;
myVar.MyDate = DateTime.Now.AddAdays(2);
myVar.MyColl2 = "AZERTY";
// ...
myList.Add(myVar);
Et vous vous donnez cette source de données à votre DataGrid.


--
Zazar
Avatar
Zazar
> je veux faire un agenda avec une ligne par jour affichée dans un datagrid,
chaque ligne indiquant le jour, la date, et comportant en plus differentes
cases à cocher.
(une ligne corespond à un jour, tout ce que je veux saisir est sur cette
ligne)
mon datagrid doit representer 1 mois.


Ok. Et bien la solution avec l'ArrayList fonctionne. Mais, si vous voulez
stocker ça dans une BDD, un dataset sera plus approprié.


je pense piloter le changement de mois et d' années avec le control
calendar
?


Je ne suis pas sûr que le control Calendar permette de ne pas afficher les
jours, mais au pire, vous pourrez vous servir des jours en question comme
étant des raccourcis pour naviguer dans votre datagrid.

j enregistre le contenu de la datagrid dans une BD SQLSERVER.



Selon l'utilisation, vous avez peut-être intérêt à n'enregistrer que les
jours où il y a quelque chose d'intéressant dans votre bdd.

Donc en gros, l'idée de base serait :
-> vous créer votre BDD
-> Si possible, vous faîtes générer par VS.NET le schéma xsd correspondant,
sinon vous l'écrivez vous même
->Vous générer le code du dataset typé correspondant à votre bdd
-> Vous créer votre page avec votre datagrid, votre calendar, et le
DataAdapter qui va bien
-> A chaque affichage de mois, vous allez chercher dans la bdd les jours
"intéressants" et remplissez le dataset
-> Vous utilisez les fonctions de manipulation de date pour générer tous les
jours du mois sélectionné et complétez si nécessaire le dataset
-> vous affichez le tout
-> vous répercutez les modifs faîtes par l'utilisateur sur le dataset
-> vous mettez à jour la bdd


--
Zazar
Avatar
jp magne
merci,

je m' explique:

je veux faire un agenda avec une ligne par jour affichée dans un datagrid,
chaque ligne indiquant le jour, la date, et comportant en plus differentes
cases à cocher.
(une ligne corespond à un jour, tout ce que je veux saisir est sur cette
ligne)
mon datagrid doit representer 1 mois.
je pense piloter le changement de mois et d' années avec le control calendar
?
j enregistre le contenu de la datagrid dans une BD SQLSERVER.

suis je clair ?

merci encore de t' interesser à mon cas !

jpm



"Zazar" a écrit dans le message
de news:
Bonjour,

> comment afficher toue les jours d' un mois selectionné avec calendar
> dans un datagrid sous forme de 1er champ d' une ligne ?
> un mois de 31 jours affichera 31 lignes avec un champ indiquant la
> semaine,
> le jour et la date.
>

Je n'ai pas bien compris ce que vous voulez faire. Pouvez vous reformuler
votre question ?
Sinon de manière générale, si vous voulez afficher des données dans un
datagrid, vous pouvez faire comme suit :
Créer une classe exposant les colonnes du datagrid en tant que propriété :
class MyClass {
DateTime mydate;
string myColl2, myColl3, ...;
public DateTime MyDate {
get {
return myDate;
}
set {
myDate = value;
}
}
//idem avec les autres colonnes
}
Ensuite vous créez un ArrayList et vous placez vos données dedans :
ArrayList mylist = new ArrayList();
MyClass myVar;
myVar = new MyClass;
myVar.MyDate = DateTime.Now;
myVar.MyColl2 = "BLAH";
// ...
myList.Add(myVar);
myVar = new MyClass;
myVar.MyDate = DateTime.Now.AddAdays(2);
myVar.MyColl2 = "AZERTY";
// ...
myList.Add(myVar);
Et vous vous donnez cette source de données à votre DataGrid.


--
Zazar




Avatar
magne jp
merci, ça m' aide dans ma reflexion.

en fait ma question peut se resumer à:
comment utiliser calendar comme source de données pour generer des "lignes
jours " dans datagrid.
connaissant le mois et l' année affichée faut il extraire le nombre de jour
du mois, le jour, la date et faire une boucle sur le nombre de jours du mois
qui ajoute les lignes jours dans le datagrid ?
et lier la datagrid à un dataset pour lire ou ecrire dans la base de données
y a pas plus simple ?

jpm

"Zazar" a écrit dans le message
de news:
je veux faire un agenda avec une ligne par jour affichée dans un
datagrid,
chaque ligne indiquant le jour, la date, et comportant en plus
differentes
cases à cocher.
(une ligne corespond à un jour, tout ce que je veux saisir est sur cette
ligne)
mon datagrid doit representer 1 mois.


Ok. Et bien la solution avec l'ArrayList fonctionne. Mais, si vous voulez
stocker ça dans une BDD, un dataset sera plus approprié.


je pense piloter le changement de mois et d' années avec le control
calendar
?


Je ne suis pas sûr que le control Calendar permette de ne pas afficher les
jours, mais au pire, vous pourrez vous servir des jours en question comme
étant des raccourcis pour naviguer dans votre datagrid.

j enregistre le contenu de la datagrid dans une BD SQLSERVER.



Selon l'utilisation, vous avez peut-être intérêt à n'enregistrer que les
jours où il y a quelque chose d'intéressant dans votre bdd.

Donc en gros, l'idée de base serait :
-> vous créer votre BDD
-> Si possible, vous faîtes générer par VS.NET le schéma xsd
correspondant,
sinon vous l'écrivez vous même
->Vous générer le code du dataset typé correspondant à votre bdd
-> Vous créer votre page avec votre datagrid, votre calendar, et le
DataAdapter qui va bien
-> A chaque affichage de mois, vous allez chercher dans la bdd les jours
"intéressants" et remplissez le dataset
-> Vous utilisez les fonctions de manipulation de date pour générer tous
les
jours du mois sélectionné et complétez si nécessaire le dataset
-> vous affichez le tout
-> vous répercutez les modifs faîtes par l'utilisateur sur le dataset
-> vous mettez à jour la bdd


--
Zazar




Avatar
Zazar
> en fait ma question peut se resumer à:
comment utiliser calendar comme source de données pour generer des "lignes
jours " dans datagrid.



Calendar n'est pas la "source de données" du datagrid, c'est juste un moyen
de récupérer une date. A partir de cette date, on va créér la source de
données.


connaissant le mois et l' année affichée faut il extraire le nombre de
jour
du mois, le jour, la date et faire une boucle sur le nombre de jours du
mois
qui ajoute les lignes jours dans le datagrid ?



Oui. Pour rappel, la structure DateTime a une méthode pour récupérer le
nombre de jours d'un mois donné.


et lier la datagrid à un dataset pour lire ou ecrire dans la base de
données
y a pas plus simple ?


Lier la datagrid au dataset ne sert pas à lire ou à écrire dans la base de
données, mais juste à générer les lignes du datagrid.

Utiliser un dataset pour lire/écrire dans la base de données est ce qu'il y
a de plus simple si vous utilisez VS.NET. En quelques glisser-déplacer, il
génère le dataset fortement typé et le dataadapter correspondant.

--

Zazar
Avatar
magne jp
je rempli d' abord un datatable avec mes infos de creation de datagrid,
j' utilise un dataview (datatable) pour creer une source pour mon
datagrid......
apres on peut envoyer les infos d' un datagrid dans une table de bdd je
crois ?

jpm

Lier la datagrid au dataset ne sert pas à lire ou à écrire dans la base de
données, mais juste à générer les lignes du datagrid.

Utiliser un dataset pour lire/écrire dans la base de données est ce qu'il
y
a de plus simple si vous utilisez VS.NET. En quelques glisser-déplacer, il
génère le dataset fortement typé et le dataadapter correspondant.

--

Zazar




Avatar
Zazar
> je rempli d' abord un datatable avec mes infos de creation de datagrid,
j' utilise un dataview (datatable) pour creer une source pour mon
datagrid......
apres on peut envoyer les infos d' un datagrid dans une table de bdd je
crois ?



Malheureusement, non. Récupérer des infos d'un datagrid en asp.net n'est pas
trivial. Le datagrid d'asp.net n'a pas la même souplesse que celui des
windows forms.

--
Zazar
Avatar
Zazar
> il vaut mieux ne pas utiliser le datagrid alors ?



Si j'ai bien compris ce que vous vouliez faire, le datagrid reste adapté.
C'est juste qu'il ne faut pas s'attendre à ce que ce soit aussi simple à
manipuler qu'en windows form.

--
Zazar
Avatar
jp magne
il vaut mieux ne pas utiliser le datagrid alors ?

jpm


"Zazar" a écrit dans le message
de news: eNWgh#
Avatar
jp magne
existe t il des exemples de code gratuits pour ce genre d' agenda.......?

j' ai pas mal cherché sans trouver.....


merci encore,

jpm

"Zazar" a écrit dans le message
de news: 41a4dc90$0$21285$

> il vaut mieux ne pas utiliser le datagrid alors ?

Si j'ai bien compris ce que vous vouliez faire, le datagrid reste adapté.
C'est juste qu'il ne faut pas s'attendre à ce que ce soit aussi simple à
manipuler qu'en windows form.

--
Zazar




1 2