Свойство CommandArgument доступно только для записи.

У меня есть следующая строка в моем коде внутри обработчика события click ImageButton:

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

Оба элемента управления принадлежат ImageButton. Однако я получаю следующую ошибку:

Property 'CommandArgument' is WriteOnly.

Может ли кто-нибудь понять, почему я получаю эту ошибку, поскольку обычно я могу прочитать из CommandArgument внутри обработчика событий. На самом деле, конечно, это их основное использование!

Спасибо.


person Curt    schedule 29.10.2010    source источник
comment
Ошибка не ReadOnly, а WriteOnly, означает, что свойство имеет только setter, а не getter   -  person ika    schedule 29.10.2010
comment
@ika хорошо сказано, извините за потраченное время. Я перепишу свой вопрос.   -  person Curt    schedule 29.10.2010
comment
что это за тип управления? и можете ли вы показать свою подпись метода? Кстати, sender обычно это Object, вы должны получить доступ к CommandEventArgs (обычно псевдонимы как e)   -  person RPM1984    schedule 29.10.2010
comment
@ RPM1984 Спасибо за ваш комментарий, я отредактировал свой вопрос, чтобы показать Sub.   -  person Curt    schedule 29.10.2010
comment
@ RPM1984 Если у отправляющего объекта есть атрибут CommandArgument, что не так с Object.CommandArgument? :С   -  person Curt    schedule 29.10.2010
comment
@ RPM1984 Кроме того, e.CommandArgument не является членом System.EventArgs :S. Спасибо за вашу помощь с этим до сих пор, очень признателен!   -  person Curt    schedule 29.10.2010
comment
@Curt - да, извините, я думаю о LinkButton (CommandEventArgs). Попробуйте мой ответ   -  person RPM1984    schedule 29.10.2010


Ответы (1)


Вы подключили событие для EventArgs, но пытаетесь получить CommandArgs.

Это должен быть ваш метод:

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
person RPM1984    schedule 29.10.2010
comment
Я пробовал следующее: Dim _btn As ImageButton = TryCast(sender, ImageButton) Select Case _btn.CommandArgument Однако я получаю сообщение об ошибке: Ссылка на объект не указывает на экземпляр объекта. Ваше здоровье - person Curt; 29.10.2010
comment
Извините, похоже, что одна из моих кнопок - это пользовательский элемент управления, содержащий кнопку ImageButton, а не только 2 кнопки ImageButton! Однако этот ответ помог мне найти это решение, спасибо: D - person Curt; 29.10.2010
comment
Да, раньше это была бы полезная информация. :) Рад, что вы разобрались. - person RPM1984; 29.10.2010