Récupérer la date sélectionnée dans un contrôle Calendar
Bonjour,
je travaille sur une application de gestion de congé. Evidemment j'ai besoin d'un formulaire pour que l'agent puisse déposer sa demande. Ce formulaire contient plusieurs champs notamment le motif du congé, la date de sortie et la date de retour. pour ces deux derniers champs, j'ai choisi de mettre le contrôle calendar.
le code de la page saisie.aspx et comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Motif"></asp:Label>
<br />
<asp:DropDownList ID="CB_Conge" runat="server">
</asp:DropDownList>
<br />
<asp:Label ID="Label2" runat="server" Text="Date de sortie"></asp:Label>
<br />
<asp:Calendar ID="DateDep" runat="server"></asp:Calendar>
<br />
<asp:Label ID="Label3" runat="server" Text="Date de retour"></asp:Label>
<br />
<asp:Calendar ID="DateRet" runat="server"></asp:Calendar>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body> |
le code de la page saisie.aspx.vb et comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
Imports System.Data.SqlClient
Imports System.Data
Partial Class saisie
Inherits System.Web.UI.Page
Dim depart As Date
Dim retour As Date
Dim TypeConge As Char
Dim connexion As New SqlConnection("Persist Security Info=False;User ID=sa;Password=afaf001;Initial Catalog=projet;Data Source=(local);")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
DateDep.SelectedDate = Now()
depart = DateDep.SelectedDate
DateDep.TodaysDate = DateDep.SelectedDate
DateRet.SelectedDate = Now()
retour = DateRet.SelectedDate
DateRet.TodaysDate = DateRet.SelectedDate
End If
connexion.Open()
Dim macommande As SqlCommand
macommande = connexion.CreateCommand
macommande.CommandType = CommandType.Text
macommande.CommandText = "SELECT conge FROM regles"
Dim mondatareader As SqlDataReader
mondatareader = macommande.ExecuteReader
Do While mondatareader.Read()
CB_Conge.Items.Add(mondatareader(0))
Loop
mondatareader.Close()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim macommandeInsert As SqlCommand
macommandeInsert = connexion.CreateCommand
macommandeInsert.CommandType = CommandType.Text
macommandeInsert.CommandText = "INSERT INTO demandes (TypeConge,DateDepart,DateRetour) values('" & TypeConge & "','" & depart & "','" & retour & "')"
macommandeInsert.ExecuteNonQuery()
End Sub
Protected Sub DateDep_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateDep.SelectionChanged
depart = DateDep.SelectedDate
End Sub
Protected Sub DateRet_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateRet.SelectionChanged
retour = DateRet.SelectedDate
End Sub
Protected Sub CB_Conge_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CB_Conge.SelectedIndexChanged
TypeConge = CB_Conge.Text
End Sub
End Class |
la page web ce génère sans aucun problème. Les problèmes apparaissent lorsque je clique sur le bouton pour insérer la demande dans la table 'demandes' de ma base de données
1er problème :
toutes les lignes insérées dans la table 'demandes' contiennent comme date de sortie et de retour : 1990-01-01
2eme probleme :
les motifs des congés sont affichés dans une DropDownList, à partir d'une table 'regles' de ma base de données. Lorsque je génère la page pour la première fois, le controle DropDownList est rempli avec tous les motifs et c'est le résultat voulu. mais après le click sur le bouton d'insertion, la liste des motifs est remplie une seconde fois, et je me retrouve avec la liste contenant les motifs duppliqués
3eme probleme :
après le click sur le bouton d'insertion. je cheeche s'il y'a une ligne insérée dans la table 'demandes'. je trouve une ligne (avec ces 1990-01-01). et dans le champs du motif, soit je ne trouve rien, soit je trouve la première lettre du motif que j'ai sélectionné dans la liste des motifs
:(
quelqu'un pourrait il m'aider svp ? merci