2008-09-16 35 views
0

我有一个奇怪的问题,在回发时,dropdownbox selectedIndex总是被设置为0。我不是无意中在代码中重新绑定它。事实上,我已经在page_load事件的第一行放置了一个断点,并且该值已经设置为零。下拉列表位于我项目的母版页中,我不知道这是否有所作为。我没有在我的内容持有人中引用该控件。asp.net dropDownBox selectedIndex未被维护

如果我设置了我的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是我绑定导致我问题的下拉列表的地方。

回答

1

你确定你正在做回发而不是刷新吗?如果没有更多的上下文来解决问题或代码块,很难为您提供帮助。

+0

同上:当我遇到这种情况时,它可能是1)缺少Page.IsPostBack检查或2)我刷新而不是使用回传 – bentford 2008-09-16 18:54:54

0

这可能是找错了树,但一对夫妇已经咬我就在这给我留下抓我的头,过去的事情:

  • 命名输入元素的复制/保留字(思维“名称”,‘法’,‘复位’等)
  • 具有表单元素物理提交

我发现,当所有的逻辑调试变成了什么都没有,我自己的沉默的形式外有时会造成时间浪费的“神秘”错误。

+0

我很确定这是我做的一些愚蠢的事情。 – Haydar 2008-09-16 16:31:14

+0

导致问题的控件的名称是ddlTerms – Haydar 2008-09-16 16:34:31

0

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

如果您发布有问题的代码,它会更容易排除故障。

+0

我添加了我在page_load事件 – Haydar 2008-09-16 16:31:48

-1

这可能仅仅是一个语法错误,但不应

If Page.IsPostBack Then 
      GetUIValues() 
     Else 

这个样子

If NOT Page.IsPostBack Then 
     GetUIValues() 
    Else 
0

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