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# - 应用程序更新时的 UWP BackgroundTask

asp.net - 如何处理 url 搜索词中的 web.config

c# - 将绝对 URL 分配给 webresources.axd 和 Telerik.Web.UI.WebResource.axd

c# - 如何检查引用需要多少字节?

c# - 这两个 GetLargestValue C# 实现中哪个更好,为什么?

asp.net - IIS6 通配符映射安全问题?

c# - 如何在托管 Windows 服务中托管 WCF 服务?

c# - 如何从 Physics.OverlapBox() 获取碰撞数据?

c# - WPF 自定义 TextTrimming

c# - 如何从客户端访问服务器端WebControl?