.cs 文件: protected void L-6ren">
gpt4 book ai didi

c# - 在 chrome 中滚动 ListBox 时回发

转载 作者:太空狗 更新时间:2023-10-29 22:33:03 26 4
gpt4 key购买 nike

使用滚动列表框,页面将刷新(不需要)。

此问题仅存在于 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;
}

最佳答案

我们最近才注意到这个不幸的错误,在一个已经运行了很长时间没有问题的页面上。它特定于 Google Chrome 版本 27,我目前使用的是版本 26。

错误:(单击控件内部的任何位置 - 滚动条是问题的焦点 - 会导致完整的回发 [假设您将 AutoPostBack 属性设置为 true])

该错误可能出现在更高级别的脚本中,我不确定它会影响我们所有的列表框。这似乎不太可能,因为我们有很多,在多个页面上,如果所有页面都表现出这种行为,我们会接到电话。

我们的解决方案包含两个选项,另一个选项不太优雅:1) 不切实际:WAITING Google Chrome 的更新,或明确使用版本 26。对于没有安装权限或无法回滚到以前版本的大型用户群来说,这是不切实际的。如果您出于某种原因绝对必须针对最新版本的 Chrome 进行测试,那么它也不起作用。

2) 我们可以访问 Telerik 控件,这使我们能够改用 RadListBox,稍微多一点的 View 状态开销对您来说可能不是一个好的解决方案,如果它是一个选项的话。这是我们选择的选项,因为 RadListBox 避免了问题行为。

第三种方法相差甚远,但吸引力大为降低:寻找一些其他替代方法来显示您的数据,例如下拉列表,如果您处理的是特别大的信息集,则可能使用辅助子选择控件。在此期间需要做更多的工作,您可能希望在进行修复后恢复更改。

我知道所有这些都是平庸的解决方案,但它们是可能的解决方法。抱歉,如果这没有太大帮助。

关于c# - 在 chrome 中滚动 ListBox 时回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com