0

J'ai la ligne suivante dans mon code, à l'intérieur du gestionnaire d'événements d'un clic ImageButton:Propriété « CommandArgument » est WriteOnly

Protected Sub FinaliseBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles FinaliseBtn.Click, SubmitPaymentViaChequeBtn.Click 
    Dim str as String = sender.commandargument.ToString.ToLower 
End Sub 

Les deux contrôles sont ImageButton « s. Cependant, je reçois l'erreur suivante:

Property 'CommandArgument' is WriteOnly. 

Quelqu'un peut-il voir pourquoi je reçois cette erreur que je peux habituellement lire un CommandArgument dans un gestionnaire d'événements. En fait, c'est sûrement leur utilisation principale!

Merci.

+1

L'erreur est pas "ReadOnly" mais "WriteOnly", signifie que la propriété a setter, et non getter – ika

+0

@ika urgh bon point, désolé pour perdre du temps. Je vais réécrire ma question. – Curt

+0

quel type de contrôle est-ce? et pouvez-vous montrer votre signature de méthode? BTW - 'sender' est généralement un' Object', vous devriez accéder à 'CommandEventArgs' (normalement des alias comme' e') – RPM1984

Répondre

0

Vous avez câblé un événement pour EventArgs, mais en essayant de récupérer CommandArgs.

Cela devrait être votre méthode:

Sub ImageButton_Command(sender As Object, e As CommandEventArgs) 
     If (e.CommandName = "Sort") And (e.CommandArgument = "Ascending") Then 
      Label1.Text = "You clicked the Sort Ascending Button" 
     Else 
      Label1.Text = "You clicked the Sort Descending Button" 
     End If 
     End Sub 
+0

J'ai essayé ce qui suit: Dim _btn Comme ImageButton = TryCast (expéditeur, ImageButton) Select Case _btn.CommandArgument Cependant, je reçois l'erreur: Référence d'objet non définie à une instance d'un objet. Cheers – Curt

+0

Voir ma modification. :) – RPM1984

+0

Désolé, il semble que l'un de mes boutons est un UserControl contenant un ImageButton, pas seulement 2 ImageButtons! Cependant, cette réponse m'a aidé à trouver cette solution, merci: D – Curt

Questions connexes