c# - 如何在刷新页面时使用asp.net定时器控件将div标签中的向下滚动条设置为垂直滚动条

标签 c# javascript asp.net html scrollbar

我正在使用 asp.net 开发一个聊天应用程序,在该应用程序中使用 div 标签,在 div 标签中添加 asp.net Literal 消息框和一个计时器控件,现在我的问题是当页面刷新或单击按钮(任何时候)时 div 滚动条始终位于顶部,但我希望它保持在底部,如何调整我的代码?

<div id="divMessages" style="background-color: White; border-color:Black;border-width:1px;border-style:solid;height:300px;width:592px;overflow-y:scroll; font-size: 11px; padding: 4px 4px 4px 4px;" onresize="SetScrollPosition()">
  <asp:Literal Id="litMessages" runat="server" />
</div>
<asp:TextBox Id="txtMessage" onkeyup="ReplaceChars()" onfocus="SetToEnd(this)" runat="server" MaxLength="100" Width="500px" ClientIDMode="Static" />
<asp:Button Id="btnSend" runat="server" Text="Send" OnClientClick="SetScrollPosition()" OnClick="BtnSend_Click" ClientIDMode="Static"/>

javascript函数是

function SetScrollPosition()
{
  var div = document.getElementById('divMessages');            
  div.scrollIntoView(false);
  //(or) 
  div.scrollTop = 10000;
  //(both are checking)
}

请给我任何建议

我检查了this example它在没有更新面板的情况下工作,但我也有更新面板和计时器控件,我需要使用这些控件来维护底部的 div 滚动条请给我任何建议...... ..

最佳答案

检查此代码 See this Example

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"
            ScriptMode="Release" />
        <script type="text/javascript">
            var xPos, yPos;
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            function BeginRequestHandler(sender, args) {
                if ($get('<%=divMessages.ClientID%>') != null) {
                    xPos = $get('<%=divMessages.ClientID%>').scrollLeft;
                    yPos = $get('<%=divMessages.ClientID%>').scrollTop;
                }
            }
            function EndRequestHandler(sender, args) {
                if ($get('<%=divMessages.ClientID%>') != null) {
                    xPos = $get('<%=divMessages.ClientID%>').scrollLeft = xPos;
                    yPos = $get('<%=divMessages.ClientID%>').scrollTop = yPos;
                }
            }
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);
        </script>

关于c# - 如何在刷新页面时使用asp.net定时器控件将div标签中的向下滚动条设置为垂直滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925378/

相关文章:

c# - 使用 Windows Installer 安装时如何更改应用程序的 exe.config 文件

c# - C# WebBrowser Control 和我电脑上安装的 IE 有什么关系?

c# - TransactionScope 和 DataContext

javascript - 有没有办法在运行时将修改后的 SVG 设置为 leafletjs 中的自定义图标?

javascript - 在jquery中增加5位数字

c# - 将 asp.net 表单 View 从另一个页面更改为插入模式

c# - 从 asp.net c# 中的 gridview 选择时检索复选框值并将其存储在数据库中?

c# - 是否可以通过 Azure 辅助角色中的 .NET 代码进行打印

c# - WCF 关注点分离 VS DRY

javascript - 如何在一次 onclick 中运行确认()和提交()