当前位置: 代码迷 >> VB Dotnet >> datagrid如何让动态生成的控件触发ItemCommand事件
  详细解决方案

datagrid如何让动态生成的控件触发ItemCommand事件

热度:211   发布时间:2016-04-25 02:20:13.0
datagrid怎么让动态生成的控件触发ItemCommand事件
我在ItemCreated加了一个保存的按钮  但是他触发不了ItemCommand事件,网上说视乎是会回发掉。
我想知道怎么解决这个问题,具体代码如下:
    Private Sub dgdResult_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgdResult.ItemCreated
        If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem)  Then
Dim lnkSave As LinkButton = New LinkButton
            With lnkSave
                .ID = "lnkSave"
                .Text = Me.ResGetString("<img src=../../../img/save.gif alt=保存 border=0 />")
                .CausesValidation = False
                .CommandName = "Update"

            End With
            e.Item.Cells(dgdResult.Columns.Count - 1).Controls.Add(lnkSave)

        End If
    End Sub
    Private Sub dgdResult_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgdResult.ItemCommand
        Select Case e.CommandName
            Case "Update"
                Dim txtNote As TextBox = e.Item.FindControl("txtNote")
                If Not txtNote Is Nothing Then                        hrkq.NewDetailNoteUp(dgdResult.DataKeys(e.Item.ItemIndex), txtNote.Text.ToString)
                    If Not array Is Nothing Then
                        For i As Integer = 1 To array.Length     
                            Dim txtCustom As TextBox = e.Item.FindControl("txtCustom" & i)
                            hrkq.NewDetailCustomUp(dgdResult.DataKeys(e.Item.ItemIndex), txtCustom.Text.ToString, i)
                        Next
                    End If
                End If

        End Select

        BindGrid()
    End Sub

------解决方案--------------------
我记得是button.commandname=....,然后再itemcommand里面根据commandname来处理
------解决方案--------------------
看看这个有没有帮助:
http://forums.asp.net/t/1184746.aspx

大意就是每次page_load的时候都要Bind一下Data.
  相关解决方案