首页 文章

usercontrol中的Asp.NET下拉列表未触发SelectedIndexChanged事件

提问于
浏览
3

Asp.Net 2.0 framewrok - VB.Net应用程序我有一个包含Asp.Net DropDownList的UserControl .

已经研究和/或尝试的事情:

  • 如果没有Page.IsPostBack(仅加载一次),控件将被绑定到页面加载内的数据
    为控制设置

  • ID proprety(ID = ddlMyControl)

  • AutoPostBack设置为true

  • 控件上的EnableViewState设置为true
    UserControl声明中的

  • AutoEventWireUp设置为true

  • 在父页面中将EnableEventValidation设置为false

无论我做什么,控件都不会触发它的SelectedIndexChanged事件 . 救命 !!

谢谢 :)

6 回答

  • 0

    我遇到了类似的问题,因为我将AutoPostBack =“true”排除在控件定义之外 . 在您的原始帖子中,您说过您尝试了但发布的代码:

    <uc3:TheControl ID="ucMyControl" runat="server" />
    

    不反映AutoPostBack属性 . 我把它添加到我的,它解决了我的问题 . 希望有所帮助 .

  • 0

    我知道现在已经很晚了,但我认为它会帮助那些遇到同样问题的人 .

    我假设你要发射一个已经绑定了一些数据的 DropDownListSelectedIndexChanged 事件!
    例如[C#]

    ddlMyDropDown.DataSource = listOfCustomers;
    ddlMyDropDown.DataTextField = "CustomerName";
    ddlMyDropDown.DataValueField = "CustomerID";
    ddlMyDropDown.DataBind();
    ddlMyDropDown.CauseValidation = false;
    

    我假设您使用的是asp.net(最新版本)..也许是4.0 .

  • 0

    那个“周围”页面怎么样?你可以在另一个页面中尝试你的UserControl吗?

    你如何添加事件处理程序?你如何包括使用控制? (当通过代码时,可能会迟到?)

    也许你可以展示一些代码;-)

  • 1

    UserControl未动态加载,但在设计时在页面的HTML中添加到父页面

    <uc3:TheControl ID="ucMyControl" runat="server" />
    

    事件处理程序被编入UserContorl本身的代码中 - 标准的东西:

    Protected Sub ddlMyThing_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlMyThing.SelectedIndexChanged
        'Do event stuff here.
    End Sub
    
  • 4

    你有没有设置ddl的 onselectedindexchanged="ddlMyThing_SelectedIndexChanged" 属性?

  • 0

    我认为您需要将EnableEventValidation设置为True .

    看一下这个 .

    http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_22405007.html

    希望这可以帮助 .

    谢谢,

    拉贾

相关问题