我有一个使用asp.net的网页表单。在这个表单中,我有很多输入。对于其中一个下拉框,无论何时按下它,焦点都会跳转到下一个文本框。
这是在更新面板中,因为有一些服务器端的工作需要过滤,隐藏等。
如果用户从visaType_filter中选择澳大利亚,则隐藏visaType_dd并显示visaType_tb。如果他们选择新西兰,情况正好相反。
现在我的问题是:
当你点击下一个输入(或控件)时,是否有bug或其他东西使焦点从下拉列表中跳出?
代码:
<fieldset>
<asp:UpdatePanel ID="visaTypeUpdatePanel" runat="server">
<ContentTemplate>
<label>Visa Type Number</label>
<label>
<asp:DropDownList ID="visaType_filter" runat="server" Width="40%" OnSelectedIndexChanged="visaType_filter_SelectedIndexChanged" AutoPostBack="true"/>
<asp:TextBox ID="visaType_tb" runat="server" Width="40%" OnTextChanged="visaType_tb_blur" AutoPostBack="true"/>
<asp:DropDownList ID="visaType_dd" runat="server" Width="40%"/>
<asp:Literal ID="visaType_literal" runat="server" />
</label>
</ContentTemplate>
</asp:UpdatePanel>
</fieldset>
<fieldset>发布于 2011-09-20 22:19:42
我用jQuery和Ajax代替UpdatePanels解决了我的问题。
发布于 2011-07-28 12:25:31
当UpdatePanel被触发时,焦点不会得到维护。所以在理想情况下,你根本不应该得到任何关注。
不管是什么原因,您都可以使用ScriptManager.SetFocus方法来解决此问题,以将焦点保持在下拉列表上。
你也可以有客户端的解决方案来维护焦点--它们的工作原理是在更新面板被触发之前,通过连接AJAX请求来记住被聚焦的控件,然后在更新面板回发完成后恢复它:参见this link获得这样的解决方案。
https://stackoverflow.com/questions/6853252
复制相似问题