VB ASP动态按钮单击事件未击中处理程序事件

时间:2018-07-12 13:17:15

标签: asp.net vb.net dynamic webforms

我正在动态创建用于分页的按钮,单击这些按钮应调用事件处理程序。回发正在发生,但是它从未命中事件子。 这是我的按钮创建代码(i = 0):

 Do While (i < pages)
    Dim btn As New Button With {
        .Text = (i).ToString,
        .CommandArgument = (i).ToString,
        .ID = "btnGrdPage_" + (i).ToString
    }

    AddHandler btn.Click, AddressOf Me.btnGrdParticipantPage_Click
    dvPageNumbers.Controls.Add(btn)

    i += 1

Loop

我要点击一次的事件如下:

 Protected Sub btnGrdParticipantPage_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim x = 1
    ...
 End Sub

1 个答案:

答案 0 :(得分:2)

该代码在哪里?

请记住,每个回发都会创建(然后销毁)页面类的全新实例。您不必在发布后保留相同的实例。这意味着用于创建控件的代码必须在每次回发中重新运行。否则,这些控件将不存在,它们将在下一个服务器事件后消失。此外,这必须在页面生命周期的很早就发生... 还原ViewState之前,因为如果此时尚不存在控件,则它们将无法获取更新的ViewState,并且ViewState为页面生命周期如何知道他们需要引发click事件。 Page_Load()为此为时已晚。尝试改用Page_Init()Page_PreInit()