Bonjour tout le monde. Dans le buts de contrôler les insertion dans une table a partir d'un detailview je dois effectuer des tests sur les champs a insérés ,c'est pour cela que j'utilise le comparevalidator par exemple pour controler 2 dates une début qui doit être avant celle de fin . Pour cela j'ai convertit le textbox ou je dois saisir la date de fin en templatefield et je lui ai ajouté le comparevalidator et je lui mets dans la propriétés controletovalidate le textbox en question mais j'arrive pas a lui indiquer le champ avec lequel il doit comparer(textbox ou je dois saisir la date de fin) même si j'ai transformé ce dernier aussi en templatefield. C'est pour cela que j'ai essayé de faire le traitement par code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Partial Class ajout_user
    Inherits System.Web.UI.Page
    Protected Sub DetailsView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.DataBound
 
        If DetailsView1.CurrentMode = DetailsViewMode.Insert Then
            'TextBox txtdatedebut = (textbox)DetailsView1.FindControl("textbox2")
            Dim txtdatedebut As TextBox
            txtdatedebut = CType(DetailsView1.FindControl("TextBox4"), TextBox)
            Dim validateur As CompareValidator
            validateur = CType(DetailsView1.FindControl("CompareValidator1"), CompareValidator)
            validateur.ControlToCompare = txtdatedebut.Text
            validateur.Operator = ValidationCompareOperator.GreaterThan
            MsgBox(txtdatedebut.Text)
        End If
    End Sub
End Class
tout d'abord je suis pas sure si l'évenement data_bound est le bon c'est pour cela que j'ai ajouté un msgbox pour afficher la date de début et il l'affiche quand il veut insérer mais la valeur est vide. Donc j'arrive pas a recuperer le textbox.
Merci d'avance pour vos réponse.