ASP.NET后端无法获取DropDownList选中值问题求助
问题解决:DropDownList选中值无法获取的原因及修复
你的问题核心出在Page_Load方法的逻辑上——每次页面回发(PostBack)时,你都会重新填充下拉框,直接覆盖了用户选中的值。
错误代码分析
当前Page_Load中,无论是否是回发请求,都会执行PopulateDepartmentDropdown()和PopulatePartNumberDropdown()。这会清空下拉框原有选项并重新添加,导致ASP.NET无法从ViewState中恢复用户之前选中的状态,最终读取SelectedValue时返回空值。
修复方案
修改Page_Load方法,仅在**首次加载页面(非回发)**时填充下拉框:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) // 仅页面第一次加载时初始化下拉框 { PopulateDepartmentDropdown(); PopulatePartNumberDropdown(); } }
原理说明
ASP.NET WebForms的页面生命周期中,回发时会先执行Page_Load,再处理按钮点击事件。如果在回发时重新填充下拉框,会先清除用户选中的选项,之后读取SelectedValue自然为空。通过IsPostBack判断,确保下拉框只在首次加载时初始化,回发时保留用户的选择状态,就能正确获取选中值了。
内容的提问来源于stack exchange,提问作者Finlay
相关产品推荐
相关产品推荐

