1

以下のコードを使用して、ポストバック後にコンテンツ ページ内のパネルとグリッドビューのスクロール位置を取得しています。私も更新パネルを使用しています。以下のコードは正常に動作しますが、同じページのオートコンプリート エクステンダーが正しく機能しないため、7 行目で「JavaScript ランタイム エラー: 未定義または null 参照のプロパティ 'scrollLeft' を取得できません」のようなランタイム JavaScript エラーがスローされます。両方の機能が正しく動作するように、この JavaScript エラーを取り除くのを手伝ってください。前もって感謝します..

`

<script type="text/javascript">
    var xPos, yPos;
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_beginRequest(BeginRequestHandler);
    prm.add_endRequest(EndRequestHandler);

    function BeginRequestHandler(sender, args) {
        xPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;//line 7
        yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
    }
    function EndRequestHandler(sender, args) {
        $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
        $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
    }
</script>`
4

2 に答える 2

0

これを JQuery に対して明確にタグ付けできるので、JQUERY を使用していると想定しています。

あなたはこのようなことをしようとしているはずです

 xPos = $('#ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
于 2013-10-02T14:49:05.633 に答える
0

貴重なアイデアを共有してくれてありがとう..

各関数を実行する前に検証を 1 つ追加して、問題を解決しました。以下の更新されたコードを見つけてください;`

<script type="text/javascript">
    var xPos, yPos;
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_beginRequest(BeginRequestHandler);
    prm.add_endRequest(EndRequestHandler);

    function BeginRequestHandler(sender, args) {


        if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
            xPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
            yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
        }
    }
    function EndRequestHandler(sender, args) {
        if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
            $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
            $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
        }
    }
</script>
于 2013-10-03T09:14:16.897 に答える