动态链接按钮未在更新面板中触发

时间:2011-05-05 22:14:55

标签: asp.net

我正在网格视图的页脚中动态添加链接按钮。网格视图包含在更新面板中。我可以得到一个异步回发(我可以看到更新进度闪存),但我无法在我的点击功能中获取调试点。

Private Sub gvParts_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvParts.RowDataBound
 ElseIf e.Row.RowType = DataControlRowType.Footer Then
        If _showPrice Then

            Dim clearbutton As New LinkButton
            clearbutton.ID = "btnClearCart"
            clearbutton.Text = "Remove All"

            ScriptManager1.RegisterAsyncPostBackControl(clearbutton)
            e.Row.Cells(7).Controls.Add(clearbutton)

            AddHandler clearbutton.Command, AddressOf clearButton_click

        End If
    End If

Private Sub clearButton_click(ByVal sender As Object, ByVal e As System.EventArgs)
    ClearCart()
End Sub

2 个答案:

答案 0 :(得分:1)

试试这个

<dl>




Private Sub gvParts_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvParts.RowDataBound
     ElseIf e.Row.RowType = DataControlRowType.Footer Then
            If _showPrice Then

                Dim clearbutton As New LinkButton
                clearbutton.ID = "btnClearCart"
                clearbutton.Text = "Remove All"

                ScriptManager1.RegisterAsyncPostBackControl(clearbutton)
                e.Row.Cells(7).Controls.Add(clearbutton)

                AddHandler clearbutton.Command, AddressOf clearButton_click

    ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(clearbutton)

            End If
        End If

抱歉,我错误地发布了错误的代码。将以上代码放在gridview的OnRowCreated事件

试试这个

  Private Sub gvParts_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvParts.RowDataBound
     ElseIf e.Row.RowType = DataControlRowType.Footer Then
            If _showPrice Then

                Dim clearbutton As New LinkButton
                clearbutton.ID = "btnClearCart"
                clearbutton.Text = "Remove All"

                ScriptManager1.RegisterAsyncPostBackControl(clearbutton)
                e.Row.Cells(7).Controls.Add(clearbutton)

                AddHandler clearbutton.Command, AddressOf clearButton_click

    ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(clearbutton)

            End If
        End If

答案 1 :(得分:0)

必须在page_load事件之前将控件添加到Controls集合中。 OnLoad事件期间发生默认数据绑定(触发OnRowCreated,OnRowDataBound事件)。尝试将数据绑定代码移动到Page_Init函数。根据您的数据绑定代码的外观,这可能意味着您必须“手动”实现数据绑定(即设置数据源并在代码中调用.DataBind())