无法使用AddHandler和AddressOf来使用UpdatePanel

时间:2015-07-14 18:50:37

标签: vb.net button updatepanel addressof addhandler

我正在构建一个动态构建UpdatePanels,Panels,DDL和Buttons的页面。每个UpdatePanel都有一个按钮。我正在通过在单击按钮后尝试更改值来进行一些测试。当我按下按钮后单击页面加载然后调用按钮单击功能。然而,它并没有改变我创建的标签的价值。

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

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

1 个答案:

答案 0 :(得分:0)

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

由于您已将按钮添加到特定面板,因此只需将面板作为参数传递。

我假设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

我还添加了#34;我。"在调用StateSaved()之前作为预防措施。