2013-03-06 50 views
5

與滾動列表框,頁面將刷新(不需要)。回滾時滾動列表框在鉻版

此問題僅適用於Chrome(版本27)。在其他瀏覽器中,它可以正常工作。

.aspx文件:

<asp:Label runat="server" ID="label1" ></asp:Label> 
<asp:ListBox ID="ListBox1" runat="server" 
    OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" 
    DataValueField="f1" DataTextField="f2" DataSourceID="SqlDataSource1" 
    Rows="15" AutoPostBack="true" > 
</asp:ListBox> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    SelectCommand="sp1" SelectCommandType="StoredProcedure" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"> 
</asp:SqlDataSource> 

cs文件:

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    label1.Text = ListBox1.SelectedItem.Text; 
} 
+2

版本27是非常早期的測試版 - 可能是一個鉻的bug? - 畢竟你有自動回覆。 – Aristos 2013-03-07 00:03:34

+0

如果將'AutoPostBack =「true」'設置爲'false',它是否仍然會發生? – Brian 2013-03-07 00:06:32

+0

如果你有舊版本的Chrome,請檢查一下。 – sohrab 2013-03-07 00:12:03

回答

2

我們已經注意到了這個不幸的錯誤只是在最近,已被工作沒有問題了很長一段時間在頁面上。這是特定於谷歌瀏覽器版本27,我目前正在使用版本26.

錯誤:(點擊控制的任何地方 - 滾動條是問題的焦點 - 導致一個完整的回發[只要你設置AutoPostBack屬性爲true])

該錯誤可能在更高級別的腳本中,而且我不確定它會影響我們的所有列表框。看起來不太可能,因爲我們在多個頁面上有很多,並且如果他們全都表現出這種行爲,我們將接到電話。

我們的解決方案包含兩個選項,其他選項不太優雅: 1)不切實際:等待Google Chrome的更新或明確使用版本26。對於沒有安裝權限或能夠回退到以前版本的大型用戶羣來說,這是不切實際的。如果您出於任何原因絕對必須針對最新版本的Chrome進行測試,它也無法正常工作。

2)我們可以訪問Telerik控件,它使我們能夠使用RadListBox,而不是更好的視圖狀態開銷,如果它是一個選項,它可能不是一個好的解決方案。這是我們選擇的選項,因爲RadListBox轉義了問題行爲。

遠處的三分之一,明顯不太吸引人的解決方案:如果您要處理的信息特別多,則可以找一些顯示數據的其他選項,例如下拉列表,可能還有次選子控件。這是更多的工作,在此期間,您可能希望在修復時恢復您的更改。

我知道所有這些都是平庸的解決方案,但它們是可能的解決方法。對不起,如果這沒有太大的幫助。

+0

在Chrome 27中解決此問題的方法解決方法:用戶選擇列表框中當前突出顯示的元素以將焦點集中到控件上。用戶可以在不觸發回發事件的情況下操作滾動條。這顯然不是一個切實可行的解決方案,但它確實允許爲了調試目的而操作該控件。 – 2013-05-23 23:01:39

1

禁用ListBox的AutoPostBack,使用ListBox的onClick屬性運行一個JavaScript,爲它做__doPostBack。這是一個解決方法。我認爲Google應該修復這個Chrome bug(版本27,28,...)。它,ListBox的AutoPostBack True,在所有其他瀏覽器上都可以正常工作。 TY Pien。

<script type="text/javascript"> 
function mypostback(id, parameter) 
{ 
    __doPostBack(id, parameter) 
} 
</script> 

<asp:ListBox ID="lstbox_id" runat="server" onclick="mypostback('lstbox_id','')"> 
</asp:ListBox> 
1

JavaScript函數mypostback不工作,如果列表已SelectionMode="Multiple"

2

這是Chrome的某些版本的bug,(正如其他人指出的)。在早期的v27版本中,我在Chrome上獲得了相同的行爲。

您應該將Chrome升級到最新版本:我的版本當前版本爲v 27.0.1453.116 m,並且此版本中的問題似乎已得到解決。

1

這絕對是Chrome中的bug(例如v.27.0.1453.110米)。請參閱this answer