2013-06-05 158 views
0

正如標題所示,我遇到下拉列表的SelectedIndexChanged事件在任何情況下都不會觸發的問題。我花了幾個小時尋找解決方案並嘗試不同的事情。有些地方表明這是一個已知的錯誤,並提供瞭解決方法,但直到這一點之前,它們都沒有爲我工作。SelectedIndexChanged事件在任何情況下都不會觸發

的下降在向下的問題在這裏建:

<tr> 
    <td> 
    Select Project 
    </td> 
    <td> 
    <asp:DropDownList ID="ddlProjects" runat="server" 
     OnSelectedIndexChanged="ddlProjects_SelectedIndexChanged" AutoPostBack="true"> 
    </asp:DropDownList> 
    </td> 
</tr> 

這似乎不夠標準給我,讓我不知道它可能會錯誤。

EDIT(對不起,我是新來這個):

代碼背後:

protected void ddlProjects_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     List<DashBoardImport> selectedProject = DBI.GetProject(Convert.ToInt32(ddlProjects.SelectedValue)); 
     foreach (var proj in selectedProject) 
     { 
      txtProjectName.Text = proj.ProjectName; 
      this.ddlStatus.SelectedIndex = proj.Status.Equals("Current") ? 0 : 1; 
      var priority = proj.Priority.PriorityName; 
      if (priority.Equals("Low")) 
      { 
       ddlPriority.SelectedIndex = 0; 
      } 
      else if (priority.Equals("Medium")) 
      { 
       ddlPriority.SelectedIndex = 1; 
      } 
      else if (priority.Equals("High")) 
      { 
       ddlPriority.SelectedIndex = 2; 
      } 
      //txtRank.Text = proj.ProjectRank.ToString(); 
      txtBusinessArea.Text = proj.BusinessArea.BusinessAreaName; 
      txtRequester.Text = proj.Requestor; 
     } 
     //selectedIndex.Value = ddlProjects.SelectedIndex.ToString(); 
    } 

沒有JavaScript的,即使在觸摸反正這個功能。我已經刪除它,試圖回到基本的東西可以說。我已經在on_lectedindexchanged函數和其他幾個地方的page_load中放置了斷點,並且事件永遠不會被觸發,並且所選索引永遠不會從0更改。

編輯2: 以下是幾個人請求的代碼。

<%@ Page Title="Future Projects" Language="C#" MasterPageFile="~/Site.Master" EnableEventValidation="true" 
AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ITDashBoard.Web.Default" %> 
+0

客戶端代碼看起來不錯 - 我們可以看到後面的代碼和這個.aspx頁面的頁面指令(以排除命名空間問題/繼承錯誤) – DaveHogan

+0

您能提供更多信息嗎? ddlProjects_SelectedIndexChanged方法!使用Chrome/Firebug查找javascript erros並讓我們知道! – Fals

+1

還請顯示您的相應代碼隱藏。也許數據源有問題。 –

回答

0

添加AutoEventWireup="true"到您的網頁在下面行中給出這樣的

<%@ Page Language="C#" AutoEventWireup="true" .................. %> 

編輯:然後加上自己的事件處理程序

ddlPojects.SelectedIndexChanged += new EventHandler(ddlPojects_SelectedIndexChanged); 
+0

嘿,我很欣賞這個迴應。該標籤已存在於該頁面中。 – chockleyc

+0

檢查你自己的事件處理程序。 – Veer

+0

我把它放在Default.aspx.designer.cs? – chockleyc

0

後面的代碼,並在.aspx代碼看起來不錯。我懷疑是一個命名空間問題。

你可以發佈你的頁面指令(這個位在你的aspx頁面<%@ Page Language="C#" .....)。具體而言,我想查看inherits屬性。我還需要使用.cs類的名稱空間,其中protected void ddlProjects_SelectedIndexChanged(object sender, EventArgs e)所在的位置。

你是否還嘗試在ddlProjects_SelectedIndexChanged中添加一個斷點以查看它是否被打中?

+0

我添加了您要求的信息。我在所有地方放置了斷點,並且在任何情況下都不會觸及ddlProjects_SelectedIndexChanged。 – chockleyc

+0

因此'ddlProjects_SelectedIndexChanged'方法位於名爲ITDashBoard.Web的名稱空間中,文件名是Default.aspx,類名是Default? – DaveHogan

+0

是的,先生。就是這樣。我沒有改變Visual Studio在創建時設置它的任何內容。 – chockleyc

相關問題