Fehler bei Erstellung der untergeordneten Seite

06/02/2009 - 09:39 von Mario Krsnic | Report spam
Hallo Leute,
wenn ich eine nicht untergeordnete Seite im Projekt lade (Spiel Hangman),
dann làuft sie. Wenn ich die gleiche dann als untergeordnete Seite an eine
MDI-Seite anbinde, dann funktioniert diese Funktion nicht:

Sub LetterGuessed(ByVal sender As Object, ByVal e As CommandEventArgs)
'Ausgewàhlte Buchstabe deaktivieren
Dim clickedButton As LinkButton = FindControl(e.CommandArgument)

clickedButton.Enabled = False
clickedButton.ForeColor = Color.Red

Hier kommt der Fehler weil (clickedButton Is Nothing)!

Im Code gibt es folgendes für alle Buchstaben:

<asp:LinkButton runat="server" id="Y" CommandArgument="Y" Text="Y"
OnCommand="LetterGuessed" />
<asp:LinkButton runat="server" id="Z" CommandArgument="Z" Text="Z"
OnCommand="LetterGuessed" />

Wo habe ich bei der Anbindung Fehler gemacht?

Danke für euere Tipps!
Mario
 

Lesen sie die antworten

#1 Gerold Mittelstädt
06/02/2009 - 10:19 | Warnen spam
Hallo Mario,

Mario Krsnic schrieb:
Hallo Leute,
wenn ich eine nicht untergeordnete Seite im Projekt lade (Spiel Hangman),
dann làuft sie. Wenn ich die gleiche dann als untergeordnete Seite an eine
MDI-Seite anbinde, dann funktioniert diese Funktion nicht:



HÎ MDI gibts bei Internetseiten nicht. Du meinst eien Seite mit MasterPage?

Sub LetterGuessed(ByVal sender As Object, ByVal e As CommandEventArgs)
'Ausgewàhlte Buchstabe deaktivieren
Dim clickedButton As LinkButton = FindControl(e.CommandArgument)

clickedButton.Enabled = False
clickedButton.ForeColor = Color.Red

Hier kommt der Fehler weil (clickedButton Is Nothing)!



Nu ja.. Sagt doch alles. Schalt mal Trace (<system.web>trace
enabled="true"/></system.web>) ein und schau Dir die
Stelerelementstruktur und -hierarche doch mal an.

Im Code gibt es folgendes für alle Buchstaben:

<asp:LinkButton runat="server" id="Y" CommandArgument="Y" Text="Y"
OnCommand="LetterGuessed" />
<asp:LinkButton runat="server" id="Z" CommandArgument="Z" Text="Z"
OnCommand="LetterGuessed" />

Wo habe ich bei der Anbindung Fehler gemacht?



Offenbar ist Dein gesuchtes Steuerelement nicht da, wo Du es suchst. Wer
oder was ruft denn LetterGuessed auf? Wird das CommandArgument richtig
übergeben?

lass FindControl von dem Steuerelement ausführen, in dem sich die
LinkButtons befinden.


Ich würde das Ganze aber sowieso dynamisch erstellen lassen (ungetestet):

For i As Integer = 65 To 90
Dim lb As New LinkButton
With lb
.Text = Chr(i)
End With
AddHandler lb.Click, AddressOf Buchstabe_Click
pnlBuchstaben.Controls.Add(lb)
Next

Protected Sub Buchstabe_Click(s As Sender, e As CommandArgument)
Dim lb As LinkButton = DirectCast(s, LinkButton)
lb.Enabled=False
lb.ForeColor=Red
End Sub

Viele Grüße!

Ähnliche fragen