3

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

    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" 以使解决方案正常工作。

4

2 回答 2

3

使用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>
于 2012-08-29T08:20:33.787 回答
1
AddHandler DropDownList1.SelectedIndexChanged, AddressOf FunctionName
于 2012-08-29T08:54:22.120 回答