在ASP DropDownList中选择项目:在FireFox中不起作用

时间:2009-12-29 14:57:41

标签: asp.net firefox drop-down-menu

这太令人沮丧了。我做了一百万次!出于某种原因,Firefox不会在我的下拉列表中选择一个项目。为什么? (它可以在IE中找到)

ASPX PAGE

<asp:DropDownList ID="ddlPlan" runat="server" CssClass="TDSelect" Width="250px" AutoPostBack="true" DataTextField="Plan_Name" DataValueField="Plan_ID" />

ASPX.VB代码背后

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Try

      GetQueryStringInfo()

      If Not Page.IsPostBack Then   
        InitDropDowns()
        LoadTasks()
        SetUI()  
      End If

    Catch ex As Exception
      lblResults.Text = "Error loading page: " & TeamDynamix.Error.TDError.HandleException(Me.DbConnStr, Me.UID, ex) & ": " & ex.Message
    End Try

  End Sub

  Private Sub InitDropDowns()

    'Plan'
    'LOAD PLANS'
    Using oDR As SqlClient.SqlDataReader = Common.GetSPDataReader(Me.DbConnStr, "PlansSelect", _
                  Common.MP("@UID", SqlDbType.VarChar, 40, Me.UID), _
                  Common.MP("@TID", SqlDbType.Int, 4, Me.TID))

      If oDR.HasRows Then   
        ddlPlan.DataSource = oDR
        ddlPlan.DataBind()   
      End If

      'Clean up'
      oDR.Close()

    End Using

    'INSERT BLANK ITEM'
    ddlPlan.Items.Insert(0, "")

    'IF PLANID IS SET, SELECT APPROPRIATE PLAN'
    If PlanID > 0 Then    
      If ddlPlan.Items.FindByValue(PlanID) IsNot Nothing Then
        ddlPlan.SelectedValue = PlanID
      End If    
    End If

  End Sub

我通过在FireFox中查看源来检查呈现的HTML。它似乎正确地创建了元素,并且所有选项(值和文本都设置正确),并且它还将selected =“selected”放在列表中的相应项目上!所以我不确定为什么该项目没有出现。注意:它现在正在工作,请阅读此问题的结尾以查看新的“真实”问题......

RENDERED HTML

<select id="ddlPlan" class="TDSelect" style="width: 250px;" onchange="javascript:setTimeout('__doPostBack(\'ddlPlan\',\'\')', 0)" name="ddlPlan">
  <option value=""/>
  <option value="517">(Copy of) AAA</option>
  <option value="500">(Copy of) andrew test</option>
  <option value="249">(Copy of) Test</option>
  <option value="359">Brandon's Test</option>
  <option value="472">BTEST2</option>
  <option value="1498">Date Issue Test</option>
  <option value="1516">Date Issue Test</option>
  <option value="1529">Date Issue Test</option>
  <option value="367">Import</option>
  <option value="91">Task Import</option>
  <option value="331">Task Plan Import</option>
  <option value="332">Task Plan Template Test </option>
  <option value="520">test 456</option>
  <option value="1464">test 456</option>
  <option value="1520">test 456</option>
  <option value="1480">Test Checking Out</option>
  <option value="1527">Test Plan</option>
  <option value="560">TestPlan-B</option>
  <option value="1465">TestPlan-B</option>
  <option value="1521">TestPlan-B</option>
  <option value="605" selected="selected">Work Items</option>
</select>

IT刚刚开始工作
我刚刚发布并回答了这个问题,因为它刚开始工作没有任何明显的原因。那么问题就变成了:FireFox中是否存在某种缓存或任何其他机制会导致此行为?

4 个答案:

答案 0 :(得分:2)

我遇到过Firefox的这个问题,我不得不为DropDownList设置自动完成选项为“off”。

示例:

    <asp:DropDownList ID="ddlName" runat="server" autocomplete="off" />

答案 1 :(得分:1)

我注意到您在代码中的HTML和PlanID中使用了“Plan_ID”。它们应该是一样的。

答案 2 :(得分:1)

有意思,你有吗!Page.IsPostback环绕着绑定DropDown的代码?如果答案为否,DropDown将在每次回发时重新绑定,并且选定的值将丢失。

答案 3 :(得分:0)

好的,出于某种原因,这才开始起作用。我发誓之前没有工作,但我没有改变任何东西,它刚刚开始工作。某种缓存是否会导致此问题或类似问题?