VB DropDownList.SelectedIndexChanged事件未触发

时间:2016-02-04 17:39:04

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

我有dropdownlist,当选择特定项目时,需要设置另一个dropdownlist.visible = true。很遗憾,我无法获取dropdownlist(或我整个网站上的任何其他dropdownlist)以触发其SelectedIndexChanged事件。

详细说明:

  • 这是一个由我的前任创建的网站,我没有时间重建它甚至升级它,所以我真的需要简单地添加这个功能来完成我的任务。
  • 该站点是用Visual Studio .NET 2003编写的。
  • 目前,无论我尝试什么,SelectedIndexChanged事件都不会发生。

我尝试了以下事项:

  1. 设置AutoPostBack="true"
  2. 设置AutoEventWireup="true"
  3. 设置EnableViewState="true"
  4. OnSelectedIndexChanged="ddlCLSortOptions_SelectedIndexChanged"添加到a​​sp:dropdownlist对象,这会给我以下错误:

      

    编译器错误消息:BC30456:'ddlCLSortOptions_SelectedIndexChanged'不是'ASP.reports_aspx'的成员。

    这个错误使我无法检查Inherits和Class名称中的任何差异,但我发现的唯一区别是该类名为reports,而Inherits为ProviderLicense.reports。当然,当我将它们更改为相同时,会产生完全不同的错误。

  5. ddlCLSortOptions_SelectedIndexChanged Sub从Private更改为Protected,然后更改为Public只是为了更好的衡量标准。
  6. 删除Handles ddlCLSortOptions.SelectedIndexChanged并添加AddHandler选项
  7. 我确信我已经尝试了更多,但我想不出其他任何事情。

    这是我的代码:

    reports.aspx

    <%@ Page Language="vb" AutoEventWireup="true" Codebehind="reports.aspx.vb" Inherits="ProviderLicense.reports"%>
    ...
    <asp:dropdownlist id="ddlCLSortOptions" style="POSITION: absolute; LEFT: 365px; Z-INDEX: 140; TOP: 315px" runat="server" AutoPostBack="True" Visible="False">
        <asp:ListItem Value="Provider" Selected="True">Provider</asp:ListItem>
        <asp:ListItem Value="RecDate">Received Date</asp:ListItem>
        <asp:ListItem Value="EntDate">Entered Date</asp:ListItem>
        <asp:ListItem Value="DateComp">Date Completed</asp:ListItem>
        <asp:ListItem Value="LicType">License Type</asp:ListItem>
        <asp:ListItem Value="Investigator">Investigator</asp:ListItem>
        <asp:ListItem Value="Worker">Worker</asp:ListItem>
        <asp:ListItem Value="Disposition">Disposition</asp:ListItem>
    </asp:dropdownlist>
    

    reports.aspx.vb

    Public Class reports
    Inherits System.Web.UI.Page
    Protected WithEvents ddlCLSortOptions As System.Web.UI.WebControls.DropDownList
    ...
    Private Sub ddlCLSortOptions_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlCLSortOptions.SelectedIndexChanged
        Label2.Text = "IT WORKED!"    'Just to see if the event fires
    
        If ddlCLSortOptions.SelectedValue = "Disposition" Then
            lblDisposition.Visible = True
            ddlDisposition.Visible = True
        Else
            lblDisposition.Visible = False
            ddlDisposition.Visible = False
        End If
    End Sub
    

    我希望这是我刚刚错过的一些简单的事情,但我现在愿意尝试任何事情。

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

AutoEventWireUp="false"

中设置reports.aspx

OnSelectedIndexChanged="ddlCLSortOptions"

中的DropDownList标记中设置reports.aspx

Private Sub

中的Protected Sub事件将OnSelectedIndexChanged更改为reports.aspx.vb