【问题标题】:AddHandler is not firing off in rowdataboundAddHandler 没有在 rowdatabound 中触发
【发布时间】:2009-06-01 17:50:35
【问题描述】:

我正在为 gridview 的代码创建一个下拉列表。我想创建一个 AddHandler,这样我就可以访问 selectedvalue。但是,在这里(Rowdatabound)添加处理程序不会被触发。我该怎么办?

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
    ''//------------ Does not fire off add handler -----

    Dim deptvalue As String
    Dim ddlmgr As New DropDownList

    AddHandler ddlmgr.SelectedIndexChanged, AddressOf ddlmgr_SelectedIndexChanged

    ddlmgr.AutoPostBack = True
    ddlmgr.Items.Clear()
    ddlmgr.Items.Insert(0, "--Select a Manager--")
    ddlmgr.AppendDataBoundItems = True
    ddlmgr.DataTextField = "Name"
    ddlmgr.DataValueField = "number"
    ddlmgr.DataSource = SqlDataSource2
    ddlmgr.DataBind()

    ''//deptvalue = GridView1.Rows(i).Cells(0).Text
    deptvalue = e.Row.Cells(0).Text
    ddlmgr.Attributes.Add("onchange", "setDepart('" & deptvalue & "')")

    If e.Row.RowType <> DataControlRowType.Pager And _
       e.Row.RowType <> DataControlRowType.Header And _
       e.Row.RowType <> DataControlRowType.Footer Then
        e.Row.Cells(2).Controls.Add(ddlmgr)
    End If
End Sub

【问题讨论】:

    标签: .net asp.net vb.net gridview drop-down-menu


    【解决方案1】:

    这似乎是一种奇怪的做事方式。

    看起来您在 gridview 的每个 rowdatabound 事件上绑定了相同的数据。如果每一行中的下拉项都相同并且不受 gridview 行中的任何其他信息的影响,则这是不必要的。相反,在页面加载时,我会将数据存储在字典中(看起来像名称/值数据),然后将其绑定到每个下拉列表。

    另外,我不明白您为什么要动态地将下拉列表添加到每个 gridview 行。为什么不添加控件并连接 OnLoad 事件以绑定上面的数据。您还可以像上面尝试的那样连接 OnSelectedIndexChanged 事件。

    【讨论】:

    • 好的,你肯定在做某事。而不是动态地这样做,我只是添加了一个控件。还有一个问题……我应该在哪里向下拉列表添加一个 onclick 事件?我需要在客户端设置一个值
    【解决方案2】:

    当您的 ddlmgr 的 SelectedIndexChanged 触发时,将启动新的回发。这意味着您现在正在使用页面类的全新实例。您之前创建事件处理程序的旧版本已消失。

    要让事件在您需要时触发,您必须在恢复状态之前为新的回发重新创建控件,否则事件处理程序将不会重新建立。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-03
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      相关资源
      最近更新 更多