2011-07-28 52 views
0

我有一个使用asp.net的web表单。在这种形式中,我有很多输入。 对于其中一个下拉菜单,只要按下它,焦点就会跳到下一个文本框。Asp专注于输入跳转错误

这在更新面板,因为用于过滤,隐藏所需的一些服务器端工作等

如果用户从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> 

回答

1

我解决了我的问题,通过使用jQuery和Ajax代替UpdatePanels

+0

Hi @CubeJockey。代表我以前的自己道歉,我没有想到解释我的答案。 4年后的今天,我不记得我是如何做到这一点的。我什至不使用ASP.NET更多:( – MrJD

0

据我所知,当时的UpdatePanel被触发,焦点不会得到维持。理想情况下,你不应该得到任何关注。

无论原因如何,您都可以使用ScriptManager.SetFocus方法来解决问题,以保持关注下拉列表。

您也可以拥有客户端解决方案来维护焦点 - 它们实质上是通过挂接到AJAX请求来记录更新面板触发前的聚焦控件,然后在更新面板回发完成时恢复它:请参见this link一个这种解决方案