c# - DDL 的选定索引在 asp .net 中始终等于零

标签 c# .net asp.net drop-down-menu selectedindexchanged

我有一个程序类,其属性为 Id、ProgramName、ShortName 和 Code,我的应用程序 我有一个像 ASP DDL

<asp:DropDownList ID="DDLProgram" runat="server" 
            OnSelectedIndexChanged ="OnDDLProgramChanged" AutoPostBack = "true">
    </asp:DropDownList>

我的 OnDDLProgramChanged 方法定义为

protected void OnDDLProgramChanged(object sender, EventArgs e)
        {
            List<CcProgramEntity> programEntities = GetAllPrograms();

            DDLProgram.DataSource = programEntities;
            DDLProgram.DataTextField = "Shortname";
            DDLProgram.DataValueField = "Id";

            //My Problem goes here
            string programCode = programEntities[DDLProgram.SelectedIndex].Code;
        }

我的列表正确获取了所有记录,我已经检查过了。但是每当我更改 DDL 中的项目时,所选索引都不会更改。所选索引保持为零。因此,除了 0 索引的项目之外,我无法获取其他项目的代码。

在这种情况下,有人可以帮助我吗?

最佳答案

您在 selectedIndex Change 事件 中再次绑定(bind)数据,重新绑定(bind)后它将重置您当前的 SelectedIndex。您不需要将数据重新绑定(bind)到 SelectedIndex Change Event

中的下拉列表

应该是这样的

protected void OnDDLProgramChanged(object sender, EventArgs e)
    {

        string programCode = programEntities[DDLProgram.SelectedIndex].Code;
    }

关于c# - DDL 的选定索引在 asp .net 中始终等于零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6578200/

相关文章:

c# - 如何可靠地知道什么对象是当前(聚焦)outlook 窗口。即 explorer 类型或 Inspector 类型

c# - StackExchange.Redis key 按 UTC 日期过期

c# - 同时访问 C# List<T> 的多个索引是否安全?

C# .NET WinForms。 Visual Studio 无法识别子文件夹中的命名空间

c# - 如何取消共享共享打印机?

c# - 在 ASP.NET 4.5 中的 AutoCompleteExtender 中添加滚动条

asp.net - 如何拦截 ASP.NET 中的异步请求/获得有关异步请求的通知?

c# - HTTP 错误 404.0 - 在 Mvc 6 Asp.net 5 中找不到

.net - CPU 负载较重时跨线程 BeginInvoke 阻塞

C# (.NET) 设计缺陷