我正在构建一个包含日志消息的文本框的网站。使用AJAX更新日志。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"
onload="textbox_load"
Height="110px"
TextMode="MultiLine"
Width="100%">
</asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
我需要在每次更新时滚动文本框。怎么样?
答案 0 :(得分:3)
处理Sys.WebForms.PageRequestManager.endRequest事件并向下滚动文本框:
var tbox = $get('<%= TextBox1.ClientID %>');
tbox.tbox.scrollTop = tbox.scrollHeight;
答案 1 :(得分:0)
尝试一些简单的JavaScript。以下是我认为您可以修改以在您的方案中工作的示例:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function scrollDown()
{
document.getElementById('<%=TextBox1.ClientID%>').scrollTop = document.getElementById('<%=TextBox1.ClientID%>').scrollHeight;
};
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</form>
</body>
</html>
你只需要弄清楚如何调用scrollDown方法...
答案 2 :(得分:0)
为什么不尝试这个简单的例子:
protected void Page_Load(object sender,EventArgs e) { if(!IsPostBack) {
Page.ClientScript.RegisterStartupScript(this.GetType(),
"ScrollTextbox",
"<script type=\"text/javascript\">document.getElementById('" +
this.TextBox1.ClientID +
"').scrollTop = document.getElementById('" +
this.TextBox1.ClientID +
"').scrollHeight; " +
" </script>");
}
}
只需使用文本框名称更改TextBox1参数即可。您可以看到文本框中的内容滚动到底部。
在AJAX刷新文本框的内容后,您可以调用此java脚本。