2016-02-04 220 views
0

我有一個dropdownlist的是,當選擇一個特定的項目,需要設置另一個dropdownlist.visible = true。不幸的是,我不能得到dropdownlist(或在我的整個網站的任何其他dropdownlist)解僱了SelectedIndexChanged事件。VB DropDownList.SelectedIndexChanged事件不觸發

詳情:

  • 這是由我的前任創建一個網站,我沒有要重建它,甚至升級的話,我真的需要簡單地添加這個功能完成的時間我任務。
  • 該網站是用Visual Studio .NET 2003編寫的。
  • 目前,無論我嘗試什麼,SelectedIndexChanged事件都不會觸發。

我曾嘗試以下的事情:

  1. AutoPostBack="true"
  2. 設置AutoEventWireup="true"
  3. 設置EnableViewState="true"
  4. 添加OnSelectedIndexChanged="ddlCLSortOptions_SelectedIndexChanged"到ASP:下拉列表對象,這給了我下面的錯誤:

    Compiler Error Message: BC30456: 'ddlCLSortOptions_SelectedIndexChanged' is not a member of 'ASP.reports_aspx'.

    此錯誤導致我下來檢查的繼承和類名的任何差異的道路,但我發現的唯一的區別是,類名爲reports和繼承是ProviderLicense.reports。當然,當我將它們更改爲相同匹配時,會引發完全不同的錯誤。

  5. PrivateddlCLSortOptions_SelectedIndexChanged分更改爲Protected,然後甚至Public只是很好的措施。
  6. 取出Handles ddlCLSortOptions.SelectedIndexChanged並添加AddHandler選項

我敢肯定有更多的,我試過,但我不能想別的。

這裏是我的代碼:

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 

我希望這件事情簡單,我只是錯過了已經,但我現在可以嘗試幾乎任何東西。

+0

變化VS標籤設置OnSelectedIndexChanged="ddlCLSortOptions"reports.aspx

變化Private SubProtected SubOnSelectedIndexChanged事件的ASP標籤,以吸引合適眼睛 – Plutonix

+0

謝謝你只是改變它 –

+0

設置AutoPostBack = True使它適合我。嘗試在一個新項目中測試它。如果它仍然不能在當前項目中運行,請刪除並重新創建該控件。 – Steve

回答

0

你試過嗎?

reports.aspx

設置AutoEventWireUp="false"在DropDownList標籤中reports.aspx.vb

+0

我知道我會同時設置其中的每一個,但不知道是否我同時專門設置了它們,所以我只是這麼做了。 但是,我收到以下錯誤: ** BC30408:方法'受保護的Dim WithEvents ddlCLSortOptions作爲System.Web.UI.WebControls.DropDownList'沒有與委託相同的簽名'Delegate Sub EventHandler(sender As Object,e As System.EventArgs)」。** 我意識到你可能是指它是'ddlClSortOptions_SelectedIndexChanged'但我現在收到此錯誤: ** BC30456:‘ddlClSortOptions_SelectedIndexChanged’不是成員‘ASP.reports_aspx’** –

+0

如果您粘貼了第二條錯誤消息,我會說您的下拉ID是錯誤的,因爲它們區分大小寫。生病看看第一個有點 – terbubbs

+0

我感謝你注意到小寫'L'。不幸的是,那不是問題。當我使用它時,我仍然遇到同樣的錯誤:** BC30456:'ddlCLSortOptions_SelectedIndexChanged'不是'ASP.reports_aspx'的成員。** –