【问题标题】:Can't get AddHandler and AddressOf to work with UpdatePanel无法让 AddHandler 和 AddressOf 与 UpdatePanel 一起使用
【发布时间】:2015-07-14 18:50:36
【问题描述】:

我正在构建一个动态构建更新面板、面板、DDL 和按钮的页面。每个 UpdatePanel 都有一个按钮。我正在通过单击按钮后尝试更改值来进行一些测试。当我在按钮单击页面加载后单步执行代码然后调用按钮单击函数时。但它不会改变我创建的 Label 的值。

Private Function BuildSaveButton() As Button
  Dim bt As New Button
  bt.CssClass = "saveButton"
  bt.Text = "Save"
  AddHandler bt.Click, AddressOf StateSaved
  Return bt
End Function

Private Sub StateSaved(ByVal sender As Object, ByVal e As EventArgs)

  nameSelected.Text = "Worked!"
End Sub

理想情况下,我的目标(因为我嵌套了 UpdatePanel)是让页面仅更新特定 UpdatePanel 中的内容,而不是整个页面。

【问题讨论】:

    标签: vb.net button updatepanel addressof addhandler


    【解决方案1】:

    我很确定您必须在添加处理程序之前为控件分配所有者。

    由于您要将按钮添加到特定面板,只需将面板作为参数传入即可。

    我假设 updatepanel 是您创建的一个类,它继承自某个利用 controls 属性的类。

    Private Sub SubAddButtonToPanel(f as UpdatePanel) As Button
      Dim bt As New Button
      bt.CssClass = "saveButton"
      bt.Text = "Save"
      f.Controlls.Add(bt)
      AddHandler bt.Click, AddressOf Me.StateSaved
      Return bt
    End Sub
    
    Private Sub StateSaved(ByVal sender As Object, ByVal e As EventArgs)
    
      nameSelected.Text = "Worked!"
    End Sub
    

    我还添加了“我”。在您调用 StateSaved() 之前作为预防措施。

    【讨论】:

    • 处理时不要忘记删除处理程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2017-02-01
    • 2018-07-08
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多