私はこれで1日詰まっています。カスタム コントロールを作成する必要があり、概念実証のために、UpdatePanel を作成してボタンを追加しようとしています。常にページ全体のポスト バックが発生します。
コード (カスタム コントロール):
Imports System.Text
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports AjaxControlToolkit
<Designer(GetType(HMXICDSearchToolDesigner))> _
Public Class HMXICDSearchTool
Inherits HMXISBaseCompositeControl
Implements INamingContainer
Private Const DEFAULT_WIDTH As Integer = 650
Private Const DEFAULT_HEIGHT As Integer = 450
Private _pnlUpdate As UpdatePanel = Nothing
Private _btnTest As Button = Nothing
Private _lbl As Label = Nothing
Protected Overrides Sub CreateChildControls()
MyBase.CreateChildControls()
_pnlUpdate = New UpdatePanel()
With _pnlUpdate
.ID = "pnlUpdate"
.ChildrenAsTriggers = False
.UpdateMode = UpdatePanelUpdateMode.Conditional
End With
_btnTest = New Button()
With _btnTest
.ID = "btnTest"
.Text = "Test Button"
.CausesValidation = False
AddHandler .Click, AddressOf Btn_Click
End With
_lbl = New Label()
With _lbl
.ID = "lbl"
.Text = "Hello!"
End With
_pnlUpdate.ContentTemplateContainer.Controls.Add(_btnTest)
_pnlUpdate.ContentTemplateContainer.Controls.Add(_lbl)
Dim aTrigger As AsyncPostBackTrigger = New AsyncPostBackTrigger()
With aTrigger
.ControlID = "btnTest"
.EventName = "Click"
End With
Me._pnlUpdate.Triggers.Add(aTrigger)
Me.Controls.Add(_pnlUpdate)
Me.Style.Add("background-color", "red")
Me.Height = 500
Me.Width = 500
End Sub
Protected Sub Btn_Click(ByVal Sender As Object, ByVal e As System.EventArgs)
If Not Me.Page.IsPostBack Then
Me._lbl.Text = "Async postback."
End If
End Sub
End Class
どんな考えでも大歓迎です。私は ChildrenAsTriggers をトグルして、このコードを Me.Load に入れようとしました。