6

更新パネルにテキストボックスがあります。ユーザーが何かを入力すると、データベースから関連データを取得し、それを別のテキストボックスに入力します。私の問題は、自動ポストバック後にテキストボックスのフォーカスが失われることです。私が使用したコードのように両方を使用したため、javascriptまたはコードを使用してこれを管理するにはどうすればよいですか

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

そしてJavaScriptはもう1つ見つけました

    <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 を使用して、これを行う方法を教えてください。

4

1 に答える 1

11

試してみることをお勧めしますSetFocus method server side

Page.SetFocus(IdOfControl);
于 2012-10-15T12:06:56.850 に答える