2011-12-15 11 views
3

基本ビデオとテキストチャットのWebサイトを作成しようとしています。部屋のページで、ビデオをフラッシュとテキストボックスにします複数行の)ユーザーがBttnGonderをクリックした時には、上記JavascriptのscrollIntoViewがこのために動作しない場合は、複数行TextBoxの下の行にスクロールする方法

<tr> 
    <td> 
     <asp:UpdatePanel ID="UpdtPnlMesajlar" runat="server" EnableViewState="true"> 
       <ContentTemplate> 
         <table> 
          <tr> 
           <td> 
            <asp:TextBox ID="TxtBxOdaMesajlari" 
             runat="server" ReadOnly="true" 
             TextMode="MultiLine" 
             Width="475" Height="100" > 
            </asp:TextBox> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            <asp:TextBox ID="TxtBxMesaj" runat="server" 
             Width="412"></asp:TextBox> 
            <asp:Button ID="BttnGonder" runat="server" 
             Text="Gönder" Width="55" 
             OnClick="BttnGonder_click"/> 
           </td> 
          </tr> 
         </table> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 

が私のコードで、その横のボタンをクリックして入力し、送信するためのユーザーのための部屋と1つのテキストボックスに送信されたすべてのメッセージを示しており、これらすべてのコントロールはとてもUpdatePanelでありますちらつきが起こらないこと。

BttnGonder_clickと呼ばれる方法で、ユーザーが入力したボタンをTxtBxOdaMesajlariに連動させます。 TxtBxOdaMesajlariは/スライドautomatically.Iを下にスクロールしないので、しかし、新しいメッセージを見ることができないメッセージのスクロールバーの数がTxtBxOdaMesajlariを見ることができるように見えるまあ後

protected void BttnGonder_click(object sender, EventArgs e) 
     { 
      string uyeId = Session["UyeId"].ToString(); 
      string mesaj = uyeId + " : " + TxtBxMesaj.Text; 
      TxtBxOdaMesajlari.Text = TxtBxOdaMesajlari.Text + Environment.NewLine + mesaj; 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "txtbxmesajlarslide", "buttonClicked();", true); 

     } 

はこれについて検索し、それはJavascriptのscrollIntoView()使用しています。この例Multi User Chat Room Using ASP.NET 2.0 and AJAXを見つけました私はそれを使用することに決めましたが、ページがちらつき、スクロールがまったく機能しません。私が間違ったコントロールや間違ったやりかたを使っているかもしれません。 ASP.NET 4.0を使用しています。

私はScriptManager.RegisterStartupScriptを使用しています

<script language="javascript" type="text/javascript"> 
    function buttonClicked() { 
       $get("TxtBxOdaMesajlari").scrollIntoView("true"); 
      } 
</script> 

のaspxファイルのコントロールは、それが示唆されたよう UpdatePanelにあり、ユーザーが Accepted answerでうまく働いたので: JavaScript function is not workingの3742。

答えて

1

scrollIntoViewは、テキストボックス自体をその内容ではなく、ビューにスクロールするために使用されます。

テキストボックスの最後までスクロールするためには、あなたが使用することができます。

function buttonClicked() { 
    var textBox = $get("TxtBxOdaMesajlari"); 
    textBox.scrollTop = textBox.scrollHeight; 
} 
+0

が、私はこのようなことがあった知らなかったあなたに感謝し、それが動作します。 – Bastardo

関連する問題