0

我创建了一个聊天应用程序,并使用多行文本框来显示聊天消息。

**Aspx page :**

<asp:UpdatePanel runat="server" ID="up1" UpdateMode="Conditional">
<ContentTemplate>
 <asp:TextBox ID="TextBox1" runat="server" Height="163px" Font-Size="0.81em" 
  Font-Names="Verdana" TextMode="MultiLine"></asp:TextBox> 
</ContentTemplate>
 <Triggers>
   <asp:AsyncPostBackTrigger ControlID="refreshTimer" EventName="Tick" />
 </Triggers>
 </asp:UpdatePanel>  

 <asp:Timer runat="server" ID="refreshTimer" Interval="2000" Enabled="true" 
 ontick="refreshTimer_Tick" />

 **Behind code :**

 protected void refreshTimer_Tick(object sender, EventArgs e)
 {
     up1.Update();
 }

一切正常,但是在收到更多消息后,TextBox1 刷新并且最后一行被隐藏并显示垂直滚动条,我怎样才能将光标位置放在最后一行之后的新行上。

提前致谢....... :)

4

1 回答 1

0

我认为您可以为文本框设置 ClientIDMode="Static",如下所示:

<asp:TextBox ID="TextBox1" runat="server" Height="163px" ClientIDMode="Static" Font-Size="0.81em" Font-Names="Verdana" TextMode="MultiLine"></asp:TextBox> 

然后将以下javascript放在页面上:

<script type="text/javascript">
    $(document).ready(function () {
        $('#TextBox1').live('change', function () {
            $('#TextBox1').scrollTop($('#TextBox1')[0].scrollHeight - $('#TextBox1').height());
        });
    });
</script>
于 2012-11-30T08:59:02.267 回答