soh*_*rab 5 c# asp.net google-chrome listbox autopostback
使用滚动列表框,页面将刷新(不需要的).
这个问题只出现在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>
Run Code Online (Sandbox Code Playgroud)
.cs文件:
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = ListBox1.SelectedItem.Text;
}
Run Code Online (Sandbox Code Playgroud)
小智 2
我们最近才注意到这个不幸的错误,该错误发生在一个已经运行很长时间没有问题的页面上。它特定于 Google Chrome 版本 27,我目前使用的是版本 26。
该错误:(单击控件内部的任意位置 - 滚动条是问题的焦点 - 导致完整的回发[假设您将 AutoPostBack 属性设置为 true])
该错误可能位于更高级别的脚本编写中,我不确定它会影响我们所有的列表框。这似乎不太可能,因为我们有很多,在多个页面上,如果所有人都表现出这种行为,我们就会接到电话。
我们的解决方案包含两个选项,另一个选项不太优雅:1)不切实际:等待 Google Chrome 的更新,或明确使用版本 26。对于没有安装权限或回滚到以前版本的能力的大型用户群来说,这是不切实际的。如果您出于某种原因绝对必须针对最新版本的 Chrome 进行测试,它也不起作用。
2) 我们可以访问 Telerik 控件,这使我们能够使用 RadListBox 来代替,稍微多一点的视图状态开销,这对您来说可能不是一个好的解决方案,如果它是一个选项的话。这是我们选择的选项,因为 RadListBox 避免了问题行为。
第三种远非那么吸引人的解决方案:寻找其他替代方案来显示数据,例如下拉列表,如果您正在处理大量信息,可能需要使用辅助子选择控件。在此期间,需要做更多的工作,并且您可能希望在修复后恢复所做的更改。
我知道所有这些都是平庸的解决方案,但它们是可能的解决方法。抱歉,如果这没有多大帮助。
| 归档时间: |
|
| 查看次数: |
2279 次 |
| 最近记录: |