[VS 2013 - VB.net] Gridview editing

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • alkoura
  • Registratie: December 2008
  • Laatst online: 13-02-2023
Hoi,

Ik vraag me af of het volgende mogelijk is:
Ik heb een gridview op een aspx pagina. De kolommen in de gridview zijn omgevormd naar templates.

Kolom X is een checkbox (Contractor - true/false). Kolom Y is een textbox of Calendar die het einde van het contract toont.

In de normale view van de gridview wordt kolom Y als een textbox weergegeven die het einde van het contract weergeeft (ddmmmyyyy) of blijft leeg als he geen contractor is.
Wanneer ik een record edit in de gridview wordt Y een calendar die enkel mag verschijnen als X (checkbox = true).

In de EditItemTemplate voor de calendar staat de calendar.visble=false als default. Wanneer ik op Edit row klik in de gridview wil ik de calendar unhiden wanneer de checkbox van contractor aangevinkt is.
Dit werkt perfect wanneer ik zelf X van waarde verander (checked/not checked) tijdens het editen. Ik wil dit zelfde ook mogelijk maken bij het klikken op Edit en op basis van de huidige data. BV als contractor=true moet hij onmiddelijk de calendar visible maken.
Ik probeerde dit te doen via "gridview on row updating" maar blijkbaar wordt dit enkel getriggered wanneer je op Edit klikt maar voor de data ingeladen is. Weet iemand bij welk event ik dit kan triggeren zodat ik mijn code kan schrijven om te unhiden bij het klikken op edit?

Dit is de code die ik gebruik om de caledar te unhiden als ik zelf contractor true of false maak:


Visual Basic .NET: Hide/Unhide calendar when clicking on contractor on gridview editing
1
2
3
4
5
6
7
8
9
10
11
 
    Protected Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs)
        Dim rij As Integer
        rij = DirectCast(DirectCast(sender, CheckBox).Parent.Parent, GridViewRow).RowIndex
        Dim editcalender As Calendar = DirectCast(GridView1.Rows(rij).FindControl("Calendar1"), Calendar)
        If DirectCast(sender, CheckBox).Checked = True Then
            editcalender.Visible = True
        Else
            editcalender.Visible = False
        End If
    End Sub


Suggesties zijn welkom :) PS ik ben echt een leek op vlak van programmeren. Mijn laatste serieuse opdracht was op school in Visual Basic 5...

Acties:
  • 0 Henk 'm!

  • alkoura
  • Registratie: December 2008
  • Laatst online: 13-02-2023
Gevonden!
Het is me geluk met de gridview_rowdatabound event na wat opzoek werk.
Nu wordt men kalender wanneer ik op Edit klik visible als contractor reeds aangevinkt was.

Visual Basic .NET: Hide/Unhide calendar when clicking on contractor on gridview editing
1
2
3
4
5
6
7
8
9
10
11
 
    Private Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound
        Dim index As Integer = 0
        If e.Row.RowType = DataControlRowType.DataRow AndAlso (e.Row.RowState And DataControlRowState.Edit) = DataControlRowState.Edit Then
            Dim editcheckbox As CheckBox = DirectCast(e.Row.FindControl("checkbox2"), CheckBox)
            Dim editcalendar As Calendar = DirectCast(e.Row.FindControl("calendar1"), Calendar)
            If editcheckbox.Checked = True Then
                editcalendar.Visible = True
            End If
        End If
    End Sub