我有一个使用asp.net的网页表单。在这种形式中,我有很多输入。 对于按下它之一的下拉菜单,焦点会跳转到下一个文本框。
这是在更新面板中,因为过滤,隐藏等需要一些服务器端工作。
如果用户从visaType_filter
选择澳大利亚,则会隐藏visaType_dd
并显示visaType_tb
。如果他们选择新西兰,那就相反了。
现在我的问题:
当您点击它以转到下一个输入(或控件)时,是否存在使焦点从下拉菜单中跳出的错误或某些内容?
代码:
<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>
答案 0 :(得分:1)
我通过使用jQuery和Ajax代替UpdatePanels
解决了我的问题。
答案 1 :(得分:0)
AFAIK,当触发UpdatePanel时,焦点不会得到维护。理想情况下,你根本不应该得到任何关注。
无论出于何种原因,您都可以使用ScriptManager.SetFocus方法解决问题,以便专注于下拉列表。
您还可以使用客户端解决方案来保持专注 - 它们基本上是通过挂钩AJAX请求来记住在更新面板被触发之前的焦点控制,然后在更新面板回发完成后恢复它:请参阅{{3一个这样的解决方案。