SelectedIndexChanged事件在任何情况下都不会触发

本文关键字:事件 在任何情况下 SelectedIndexChanged | 更新日期: 2023-09-27 18:17:09

正如标题所说,我遇到了一个问题,即下拉列表的SelectedIndexChanged事件在任何情况下都不会触发。我花了几个小时寻找解决方案,尝试了不同的方法。有些地方建议这是一个已知的错误,并提供解决方案,但没有一个对我有效,直到这一点。

问题中的下拉菜单构建在这里:

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

这对我来说似乎足够标准,所以我不知道哪里可能出错。

编辑(抱歉我是新手):

背后的代码:

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以任何方式触及这个函数。我已经删除了它,试图把事情带回到基本的,可以这么说。我在onselectedindexchanged函数和其他几个地方的page_load中放置了断点,事件永远不会触发,所选索引永远不会从0更改。

Edit2:这是几个人要求的代码。

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

SelectedIndexChanged事件在任何情况下都不会触发

AutoEventWireup="true"添加到您的页面中,如下所示

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

编辑:然后添加您自己的事件处理程序

ddlPojects.SelectedIndexChanged += new EventHandler(ddlPojects_SelectedIndexChanged);

您的代码和.aspx代码看起来很好。我怀疑是名称空间问题。

你可以张贴你的页面指令(这位在你的aspx页面<%@ Page Language="C#" .....)。我特别想看看inherits属性。我还需要protected void ddlProjects_SelectedIndexChanged(object sender, EventArgs e)所在的。cs类的命名空间。

您是否还尝试在ddlProjects_SelectedIndexChanged中添加断点以查看它是否被击中?