You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asp.net中DropDownList始终返回SelectedItem为0的问题

核心问题出在ASP.NET页面生命周期的回发机制上:

  • 你在Page_Load中直接执行drpBranch.Items.Add("Add New"),而Page_Load会在每次页面回发(比如点击按钮、提交表单)时重复执行。这意味着每次触发读取SelectedItem的操作时,DropDownList的选项都会被重新添加一遍,之前的选中状态会被直接覆盖,导致默认选中索引始终是0。
  • 调用DataBind()在这里完全没必要——你是手动添加选项,不是通过数据源绑定,强行调用反而可能干扰控件的状态保存。

解决方法很简单,添加IsPostBack判断,只在页面首次加载时添加选项:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        drpBranch.Items.Add("Add New");
    }
}

这样回发时不会重新创建选项集合,控件会自动保留之前的选中状态,读取SelectedItem就能得到正确结果了。

内容的提问来源于stack exchange,提问作者Spike Colman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:02:04