【问题标题】:Programmatically set OnSelectedIndexChanged for a DropDownList in VB.NET以编程方式为 VB.NET 中的 DropDownList 设置 OnSelectedIndexChanged
【发布时间】:2012-08-29 08:19:16
【问题描述】:

我试过下面的代码,但没有用:

    DropDownList1.SelectedIndexChanged += new EventHandler ( doSub );
  1. 它是在 C# 而不是 VB 中
  2. 当我键入 DropDownList1 时。智能感知不带 SelectedIndexChanged 方法
  3. 最后它抱怨 SelectedIndexChanged 是一个事件,必须由 RaiseEvent 调用

我正在尝试根据彼此的 SelectedValue 动态创建 ddls,因此我需要以编程方式设置 OnSelectedIndexChanged 值,而不是像这样声明:

    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DoSub">
    </asp:DropDownList>

提前致谢。

提示:删除 @Page 部分中的 AutoEventWireup="false" 以使解决方案生效。

【问题讨论】:

    标签: asp.net vb.net webforms


    【解决方案1】:

    使用AddHandler 附加事件处理程序。

    语法:

    AddHandler obj.EventName, AddressOf HandlerName
    

    例子:

    <script runat="server">
        Protected Sub Page_Load(sender As Object, e As System.EventArgs)
            AddHandler DropDownList1.SelectedIndexChanged, AddressOf DoSub
        End Sub
        Sub DoSub(sender As Object, e As System.EventArgs)
            Response.Write(DropDownList1.SelectedValue)
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
    
            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
                <asp:ListItem>Foo</asp:ListItem>
                <asp:ListItem>Bar</asp:ListItem>
            </asp:DropDownList>
    
        </div>
        </form>
    </body>
    

    【讨论】:

    • 我从页眉中删除了 AutoEventWireup="false",您的解决方案运行良好!非常感谢朋友!
    【解决方案2】:
    AddHandler DropDownList1.SelectedIndexChanged, AddressOf FunctionName
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2013-09-13
      相关资源
      最近更新 更多