这太令人沮丧了。我做了一百万次!出于某种原因,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中是否存在某种缓存或任何其他机制会导致此行为?
答案 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)
好的,出于某种原因,这才开始起作用。我发誓之前没有工作,但我没有改变任何东西,它刚刚开始工作。某种缓存是否会导致此问题或类似问题?