我正在尝试创建一个基本的视频和文本聊天网站。在房间页面中,我有 Flash 视频和一个文本框(多行),其中显示发送到房间的所有消息和一个文本框,供用户通过单击输入和发送旁边的按钮
<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>
上面是我的代码,所有这些控件都在UpdatePanel
所以当用户点击时BttnGonder
不会发生闪烁。
当用户按下按钮时,他输入的内容将被连接到TxtBxOdaMesajlari
在下面的方法中调用BttnGonder_click
.
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);
}
好后出现一些消息滚动条TxtBxOdaMesajlari
可以看到,但是新消息看不到,因为TxtBxOdaMesajlari
不会自动向下滑动/滚动。我搜索了这个并找到了这个例子使用 ASP.NET 2.0 和 AJAX 的多用户聊天室 http://www.codeproject.com/KB/aspnet/ASPNetChat.aspx它使用 Javascript 的scrollIntoView()
所以我决定使用它,但页面闪烁并且滚动根本不起作用。也许我使用了错误的控件或错误的方法。
如果这很重要的话,我正在使用 ASP.NET 4.0。
在 aspx 文件上
<script language="javascript" type="text/javascript">
function buttonClicked() {
$get("TxtBxOdaMesajlari").scrollIntoView("true");
}
</script>
我在用ScriptManager.RegisterStartupScript
因为控件位于UpdatePanel
正如建议的那样并且运行良好已接受的答案 https://stackoverflow.com/a/6201649/647884按用户:3742 的JavaScript 函数不工作 https://stackoverflow.com/questions/6201559/javascript-function-is-not-working.