0

UpdatePanels、Panels、DDL、および Buttons を動的に構築するページを構築しています。UpdatePanel ごとに 1 つのボタンがあります。ボタンをクリックした後に値を変更しようとして、いくつかのテストを行っています。ボタン クリック後にコードをステップ実行すると、ページが読み込まれ、ボタン クリック関数が呼び出されます。それでも、作成した 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

理想的には、私が目指しているのは (UpdatePanels をネストしているため)、ページ全体ではなく、その特定の UpdatePanel にあるもののみをページが更新することです。

4

1 に答える 1

0

ハンドラーを追加する前に、所有者をコントロールに割り当てる必要があることは確かです。

ボタンを特定のパネルに追加しているので、パネルをパラメーターとして渡すだけです。

updatepanel は、コントロール プロパティを利用するクラスから継承する、作成したクラスであると想定しています。

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 に答える