【问题标题】:ASP.NET onselectedindexchanged event not firing when using loadcontrol使用 loadcontrol 时 ASP.NET onselectedindexchanged 事件未触发
【发布时间】:2013-12-31 03:01:21
【问题描述】:

在普通的 vb 类中,我使用下拉列表加载用户控件

Dim products As UserControl = Page.LoadControl("~/Controls/Products.ascx")
                            products.ID = "Products"
                            tile.Controls.Add(products)

但我的 onindexchanged 事件(在用户控件中)由于某种原因没有触发。

代码:

Partial Class Controls_Products
Inherits System.Web.UI.UserControl

Public Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim myPage As BasePage = CType(Me.Page, BasePage)
        Dim dsProducts As DataSet = eyeCatalogueFunctions.GetProduct(0, myPage.GetLang, myPage.GetCustid, 0, "", 0, Nothing, 0)

        If Not IsNothing(dsProducts) AndAlso dsProducts.Tables.Count > 0 AndAlso dsProducts.Tables(0).Rows.Count > 0 Then
            With Me.ddlProducts
                .DataSource = dsProducts.Tables(0)
                .DataTextField = "product_nam"
                .DataValueField = "seqproduct"
                .DataBind()
            End With

            Me.lblTest.Text = Me.ddlProducts.Items(0).Text
        End If
    End If

End Sub


Protected Sub ddlProducts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducts.SelectedIndexChanged
    'Do something

End Sub

用户控件没有什么特别之处:

<%@ Control Language="VB" AutoEventWireup="true" CodeFile="Products.ascx.vb" Inherits="Controls_Products" EnableViewState="true" %>

有什么想法吗?

【问题讨论】:

  • 发布用户控件的代码可能会有所帮助。
  • 是否会在用户控件中触发任何事件,例如您暂时在用户控件中放置一个按钮并为其绑定一个点击事件,这行得通吗?
  • 不,那也不行
  • 嗯,似乎事件没有正确连接,你能发布你的用户控件的标记吗?
  • 您是否尝试过查看 SelectedValueChanged 事件是否触发?

标签: asp.net vb.net events user-controls


【解决方案1】:

检查 products 控件的 AutoPostBack 属性是否设置为 true

也许您可以将其设置为 products.AutoPostBack=true

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 2012-02-28
    • 1970-01-01
    • 2012-12-13
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    相关资源
    最近更新 更多