asp.net dropDownBox selectedIndex不被维护
时间:2020-03-05 18:56:15 来源:igfitidea点击:
我有一个奇怪的问题,因为dropdownbox selectedIndex总是在回发后设置为0。我不是偶然在我的代码中重新绑定它。实际上,我已经在page_load事件的第一行放置了一个断点,并且该值已经设置为零。下拉列表位于项目的主页中,我不知道这是否有所不同。我没有在我的内容持有者中引用该控件。
如果我将autoPostBack设置为'true',则页面工作正常。我不必更改任何代码,并保持selectedIndex。我也尝试过启用和禁用enableViewState,这没有什么区别。在这一点上,我正在抓紧稻草来弄清楚发生了什么。我从来没有遇到过这个问题。
这是我的page_load事件中的代码。
If CartEstablished Then txtCustNum.Visible = False btnCustSearch.Visible = False lblCustNum.Visible = True ddlSalesType.Visible = False lblSalesType.Visible = True ddlTerms.Visible = False lblTerms.Visible = True lblTerms.Text = TermsDescription Else txtCustNum.Visible = True btnCustSearch.Visible = True lblCustNum.Visible = False lblSalesType.Visible = False ddlSalesType.Visible = True lblTerms.Visible = False ddlTerms.Visible = True End If If Page.IsPostBack Then GetUIValues() Else LoadTermCodes() End If
我在LoadTermCodes绑定了导致我出现问题的下拉列表。
解决方案
回答
我们确定要执行回发而不是刷新吗?如果没有更多有关问题或者代码段的上下文,很难。
回答
这可能是错误的树,但是过去发生的几件事使我难以忍受,这让我挠了挠头:
- 给输入元素命名一个重复/保留的单词(例如"名称","方法","重置"等)
- 表单元素实际上不在提交的表单之外
我发现,当所有逻辑调试都没有结果时,我自己的笨拙有时会造成诸如此类的浪费时间的"神秘"错误。
回答
我们在页面生命周期的哪个阶段绑定下拉列表?如果我们要在page_init中进行绑定,则它应该可以工作;如果我们要在page_load中进行绑定,请确保在绑定命令周围包装!IsPostBack。
如果我们发布有问题的代码,则更容易进行故障排除。
回答
这可能只是语法错误,但不应
If Page.IsPostBack Then GetUIValues() Else
看起来像这样
If NOT Page.IsPostBack Then GetUIValues() Else
回答
我发现了同样的问题...以我为例,在另一个dropdownlist onchange客户端事件之后,javascript函数填充了dropdownlist。在PageLoad上,第二个下拉列表丢失了所有项目,因此其selectedIndex变为0。有什么方法可以防止这种情况?