多个回发事件后将焦点设置到文本框时出现问题

时间:2014-06-24 15:10:29

标签: c# jquery asp.net updatepanel

在我的页面上有更新面板和同一更新面板内的一个文本框和按钮。在我将enter键设置为更新面板的默认按钮之后。实际上经过多次回发后,第三次回传后焦点设置为浏览器的后退按钮。我想在哪里设置焦点到文本框。我试着通过使用我在按钮事件的最后一行写的下面的选项将焦点设置到第一个文本框。

1. option => Page.SetFocus(txtOrdertoAdd.ClientID);
2. option => txtOrdertoAdd.Focus();
3. option => Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "SetFocus(" + txtOrdertoAdd.ClientID + ");</script>");
4. option => ScriptManager.RegisterStartupScript(this, this.GetType(), "selectAndFocus", "$get('" + txtOrdertoAdd.ClientID + "').focus();", true);

我正面临这个有线问题,特别是在IE中,它在火狐和Chrome中工作正常。任何人都可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
    <div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                 <asp:Panel runat="server" ID="Panel1" DefaultButton="Button1">
                     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>

和此:

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox1.Text = TextBox1.Text + "1";
    TextBox1.Focus();
}

在IE11上正常工作。

你能展示你拥有的东西吗?