0

我正在构建一个动态构建更新面板、面板、DDL 和按钮的页面。每个 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 中的内容,而不是整个页面。

4

1 回答 1

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

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

于 2015-07-15T01:26:32.683 回答