如何在asp.net中回发后将焦点设置在文本框上

时间:2012-10-15 11:53:06

标签: c# asp.net asp.net-ajax updatepanel

我在更新面板中有一个文本框。当用户键入内容时,我从数据库中获取相关数据并将其填入另一个文本框中。我的问题是,在autopostback之后,任何文本框的焦点都会丢失。我如何使用javascript或代码管理这个,因为我在我使用的代码中使用了两者

 System.Web.UI.ScriptManager.GetCurrent(this).SetFocus(this.txtReference);

和javascript我发现还有一个

    <script type="text/javascript">
    var postbackElement;
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);


    function beginRequest(sender, args) {
        postbackElement = args.get_postBackElement();
    }


    function pageLoaded(sender, args) {
        var updatedPanels = args.get_panelsUpdated();
        if (typeof (postbackElement) === "undefined") {
            alert('if Loop');
            return;
        }
        else if (postbackElement.id.toLowerCase().indexOf('button1') > -1) {
        alert('else');
            for (i = 0; i < updatedPanels.length; i++) {

                document.getElementById('<%= txtAcctNo.ClientID %>').focus();
            }
        }


    }
</script>

但因为'button1 undefined'而无法正常工作。 我放置的是因为在aspx页面中OnTextChanged =“”上执行了所有事件。

所以请通过代码或javascript帮助我如何做到这一点。

1 个答案:

答案 0 :(得分:8)

我建议您尝试使用SetFocus method server side

Page.SetFocus(IdOfControl);