asp.net dropDownBox selectedIndex未被维护

时间:2008-09-16 15:17:21

标签: asp.net .net-2.0

我有一个奇怪的问题,一个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是我绑定导致我出现问题的下拉列表的地方。

5 个答案:

答案 0 :(得分:1)

您确定要进行回发而不是刷新吗?如果没有更多的问题或代码块的上下文,很难帮助你。

答案 1 :(得分:0)

这可能是在错误的树上咆哮,但过去一些困扰我的事情让我摸不着头脑:

  • 将输入元素命名为重复/保留字(思考“名称”,“方法”,“重置”等)
  • 将表单元素放在提交表单之外

我发现当所有逻辑调试都没有发现时,我自己的愚蠢有时会造成浪费时间的“神秘”错误。

答案 2 :(得分:0)

在页面生命周期的哪个阶段绑定下拉列表?如果你在page_init中绑定它应该工作,如果你在page_load中绑定,请确保在绑定命令周围包装!IsPostBack。

如果您发布有问题的代码,则可以更轻松地进行问题排查。

答案 3 :(得分:0)

我发现了同样的问题...在我的情况下,dropdownlist由另一个dropdownlist onchange客户端事件后的javascript函数填充。在PageLoad上,第二个下拉列表丢失了所有项目,因此其selectedIndex变为0.有什么方法可以防止这种情况发生吗?

答案 4 :(得分:-1)

这可能只是语法错误,但不应该

 If Page.IsPostBack Then
             GetUIValues()
        Else

看起来像这样

  If  NOT Page.IsPostBack Then
         GetUIValues()
    Else