tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
985
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    d-snake d-snake ist offline Rookie
    Registriert seit
    Jun 2005
    Beiträge
    7
    Hi leute,

    ich habe folgendes Problem:
    Ich habe eine DataGrid
    In dieser DataGrid habe ich einen editieren -und ein löschen Button.
    Diese werden in der Page_Load Prozedur erstellt.
    (Ich weiß das das DataGrid eine vorgefertigte Lösung mitbringt; möchte ich jedoch aus verschiedenen Gründen nicht benutzen)

    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
    
            'Bearbeiten Button
            Dim btnEdit As New Button
     
            For i = 0 To DGrid.Items.Count - 1
                If i <> DGrid.Items.Count - 1 Then
                    DGrid.Items(i).Cells(0).Controls.Add(New Button)
                    btnEdit = CType(DGrid.Items(i).Cells(0).Controls(0), Button)
                    btnEdit.Text = "Bearbeiten"
                    btnEdit.ID = "btnEdit"
     
                    AddHandler btnEdit.Click, AddressOf btnEdit_Click
                End If
            Next
     
            'Löschen Button
            Dim btnDel As New Button
     
            For i = 0 To DGrid.Items.Count - 1
                If i <> DGrid.Items.Count - 1 Then
                    DGrid.Items(i).Cells(0).Controls.Add(New Button)
                    btnDel = CType(DGrid.Items(i).Cells(0).Controls(1), Button)
                    btnDel.Text = "Löschen"
                    btnDel.ID = "btnDel"
     
                    AddHandler btnDel.Click, AddressOf btnDel_Click
                Else
                    DGrid.Items(i).Cells(0).Controls.Add(New Label)
                End If
            Next

    Wie ihr vielleicht sehen könnt, weise ich dem Click Ereignis die Prozedur btn***_Click zu.
    Klappt wunderbar. Wenn der Benutzer auf den Knopf drückt, springt der Debugger auch in diese Prozedur.
    Jetzt kommt mein eigentliches Problem.

    In dieser Click Prozedur(btnEdit_Click) lösche ich in der ersten Spalte der Auswahl alle Controls d.h. alle
    Knöpfe und erstelle zwei neue Buttons: Speichern und Abbrechen.
    Diesen Knöpfen weise ich auch ein zugehörige Prozedur zu (das gleiche wie in Page_Load).

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
            'Controlls löschen
            DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls.Clear()
     
            'Speichern
     
            DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls.Add(New Button)
            btnAccept = CType(DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls(0), Button)
            btnAccept.Text = "Speichern"
     
            AddHandler btnAccept.Click, AddressOf btnAccept_Click
     
            'Abbrechen
            Dim btnAbort As New Button
     
            DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls.Add(New Button)
            btnAbort = CType(DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls(1), Button)
            btnAbort.Text = "Abbrechen"
     
            AddHandler btnAbort.Click, AddressOf btnAbort_Click

    Er springt jetzt jedoch nicht mehr in diese Prozedur. Ich bin schon am verzweifeln und reiß mir die Haare raus .

    Bitte, wenn ihr eine Erklärung, Lösung oder Fragen dazu habt, schreibt

    Gruß und vielen Dank im vorraus!
     

  2. #2
    Janek Janek ist offline Grünschnabel
    Registriert seit
    Aug 2005
    Beiträge
    3
    Hallo, wenn ich das richtig sehe (ich entwickle sonst nur in C#), dann liegt das Problem daran, dass der Button btnAccept zwar instanziiert wird, aber beim Neuerstellen

    DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls.Add(New Button)

    wird kein "bezug" auf die Instanz genommen. Wenn du statt "New Button" btnAccept in der obenstehenden Programmzeile verwenden würdest, dann müsste es klappen. Also folgendermassen:


    DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls.Add( btnAccept )

    In der Zeile

    btnAccept = CType(DGrid.Items(sourceItem.ItemIndex).Cells(0).Controls(0), Button)

    sagst du btnAccept, dass er ein Button sein soll, nicht dass er der Button an der Oberfläche ist.



    Das gleiche gilt auch für den Button btnAbort.
     

Ähnliche Themen

  1. Button reagiert nicht
    Von Twos im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 08.09.09, 02:32
  2. Flash 8, Button reagiert in MC bei rollOver nicht
    Von astaluego im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 19.08.06, 12:09
  3. Click-Ereignis bei Bildern
    Von WilliamSpiderWeb im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 11.06.06, 12:48
  4. UserControl reagiert nicht auf Click
    Von Plumpsi im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 21.02.05, 17:56
  5. Button-Click-Ereignis
    Von Arndtinho im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 16.03.04, 22:06