2011-09-12 21 views
1

AJAX.NETを使用してチャットスクリプトを作成しました。すべてのボタンをクリックするたびに、私はOnClientClick機能を使用して、すべてのボタンクリック、すなわち更新をスクロールさせる次のコードサンプルを使用しています。サーバー側JavaScript動作

<asp:Button ID="btn_msg" runat="server" Text="Submit" OnClick="btn_msg_Click" OnClientClick="scrolldown('div1')" /> 

私は動作しているページでこの結果は正常ですが、受信側のスクロールバーでは更新が行われていません。私はいくつかのサーバーのアクションには、OnClientClickオプションを変更すると思います。私はOnClick="btn_msg_Click; scrolldown('div1');"を追加しようとしましたが、これは機能しません。私の行動を達成するための他の方法がありますか?

答えて

0

endCallbackイベントをscrolldownにフックする必要があります。 コンテンツをスクロールしようとした瞬間はまだ配信されていません。

このようにそれを試してみてください。

<body onload=”load()”> 
<script> 
function EndRequestHandler() 
{ 
    scrolldown('div1'); 
} 

function load() 
{ 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
} 
</script> 
+2

もう一度質問をお読みください。 – Mal

+0

はい、完全に疑問を誤解しました。更新されたバージョンを確認してください。 –

1

一見、私はアントンが正しいと信じています。あなたがこの動作を見ている理由は、すべてが実行されている順序です。クライアントスクリプトが最初に実行されます。その後、サーバースクリプト。サーバースクリプトは、ポストバック(または更新パネルを介して)を引き起こし、htmlを再びレンダリングし、スクロールバーの位置を失います。

アントンのコードでは、ajaxポストバックが完了するとscrolldown関数が実行されます。

サイドノート: 私がこれを行っていたら、AJAX.NETを完全に削除してjqueryに切り替えます。あなたはこの種のものをもっと多くコントロールしています。

関連する問題