【问题标题】:Property 'CommandArgument' is WriteOnly属性“CommandArgument”是 WriteOnly
【发布时间】:2010-10-29 08:31:57
【问题描述】:

我的代码中有以下行,位于 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 中读取。事实上,这肯定是它们的主要用途!

谢谢。

【问题讨论】:

  • 错误不是“ReadOnly”而是“WriteOnly”,表示属性只有setter,没有getter
  • @ika urgh 好点,抱歉浪费时间。我会重写我的问题。
  • 这是什么类型的控件?你能展示你的方法签名吗?顺便说一句 - sender 通常是 Object,您应该访问 CommandEventArgs(通常别名为 e
  • @RPM1984 感谢您的评论,我已经编辑了我的问题以显示 Sub。
  • @RPM1984 如果发送对象具有 CommandArgument 属性,那么 Object.CommandArgument 有什么问题? :S

标签: asp.net event-handling asp.net-3.5 sender commandargument


【解决方案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

【讨论】:

  • 我尝试了以下方法: Dim _btn As ImageButton = TryCast(sender, ImageButton) Select Case _btn.CommandArgument 但是,我收到错误:对象引用未设置为对象的实例。干杯
  • 抱歉,看起来我的按钮之一是包含 ImageButton 的 UserControl,而不仅仅是 2 个 ImageButton!但是,这个答案帮助我找到了解决方案,谢谢:D
  • 是的,这在以前会很有帮助。 :) 很高兴你把它整理好了。
猜你喜欢
  • 2013-07-11
  • 2010-09-24
  • 2014-12-04
  • 2011-04-27
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2011-06-04
相关资源
最近更新 更多