【问题标题】:Scrollup the div in updatepanel向上滚动更新面板中的 div
【发布时间】:2009-08-15 13:18:16
【问题描述】:

当新文本进入时,我需要向上滚动 div。我的 div 在 Updatepanel 中,我收到此错误“get("divChatMessage") is null” 这是我的代码:-

<script type="text/javascript">
function ScrollToBottom() 
{
        $get('divChatMessage').scrollTop = $get('divChatMessage').scrollHeight;
}
</script>
<div id="divMessage" runat="server" style="float: left">
            <asp:UpdatePanel ID="upMessage" runat="server">
                <ContentTemplate>
                 <div id="divChatMessage" style="width:600px; overflow:auto; height:200px; border-style:solid;" runat="server">
                 </div>
</ContentTemplate>
            </asp:UpdatePanel>
        </div>

后面的代码:-

 divChatMessage.InnerHtml = divChatMessage.InnerHtml + "<br />" + message;
 ScriptManager.RegisterStartupScript(this,
                                     this.GetType(),
                                     Guid.NewGuid().ToString(),
                                     ";ScrollToBottom();",
                                     true);

【问题讨论】:

    标签: c# asp.net javascript ajax asp.net-ajax


    【解决方案1】:

    您遇到了命名容器的问题。由于您的控件设置为 runat=server,因此它的名称将在客户端被破坏。从后面的代码中将 div 的 ClientID 作为参数提供给脚本,这将解决您的问题。

    ScriptManager.RegisterStartupScript(this,
                                        this.GetType(),
                                        Guid.NewGuid().ToString(),
                                        ";ScrollToBottom('"
                                            + divChatMessage.ClientID
                                            + "');",
                                        true);
    
    function ScrollToBottom(id) 
    {
        var ctl = $get(id);
        ctl.scrollTop = ctl.scrollHeight;
    }
    

    【讨论】:

    • 非常感谢您的帮助。
    猜你喜欢
    • 2011-08-20
    • 2015-01-30
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多