【问题标题】:Auto Scroll to bottom of text box?自动滚动到文本框底部?
【发布时间】:2017-02-07 01:48:00
【问题描述】:

我只是在学习 Asp.Net 和 VB,所以请保持温和 :-) 代码是为我编写的,它显示了一个消息线程。它在回复框所在的底部显示从最旧的消息到最近收到的消息。有什么方法可以添加到此代码中,使其在打开线程时自动向下滚动到线程底部? 非常感谢您的帮助...

        <div style="width:78%; float:right; overflow:auto; height:500px;" id="messagesWindow">
            <asp:SqlDataSource ID="DSSelectMessages" runat="server" 
                ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" 
                SelectCommand="SelectMessages" SelectCommandType="StoredProcedure">
                <SelectParameters>
                </SelectParameters>
            </asp:SqlDataSource>
            <asp:Literal ID="Literal1" runat="server"></asp:Literal>

            <asp:HiddenField ID="hdnButtonFrom" runat="server" />
            <div style="font-size:1.3em">
                <asp:GridView ID="gdvMessages" runat="server" CssClass="mGrid" AutoGenerateColumns="False" DataKeyNames="messageID" ShowHeader="False" ShowFooter="True">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="lblContactFrom" runat="server" Text='<%# Eval("contactFrom") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="lblDateSent" runat="server"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="lblItem" runat="server" Text='<%# Eval("item") %>'></asp:Label>
                                <asp:HyperLink ID="hypItem" Visible="false" runat="server" CssClass="nyroModalMsg" NavigateUrl='<%# "~/Account/itemSold.aspx?br=messageList&fileID=" & Eval("fileID") %>'>Mark as Sold</asp:HyperLink>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField ShowHeader="False" SortExpression="messageText">
                            <EditItemTemplate>
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("messageText") %>'></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtMessage" runat="server" TextMode="MultiLine" Rows="5" Columns="32" MaxLength="2000"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="<br />Add Reply" CssClass="error" ValidationGroup="msgSubmit" ControlToValidate="txtMessage"></asp:RequiredFieldValidator>
                                <br />
                                <asp:Button ID="btnSend" runat="server" Text="Reply" onclick="btnSend_Click" ValidationGroup="msgSubmit" />
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="Label1" runat="server" Text='<%# Eval("messageText") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>            
            </div>
        </div>

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    试试

    Textbox1.SelectionStart = Textbox1.Text.Length - 1  
    Textbox1.ScrollToCaret()
    

    【讨论】:

    • 这个答案出现在低质量帖子队列中,因为它的长度和缺少除代码之外的文本。提供代码如何帮助用户的解释几乎总是更好。见How to Answer。
    • @soohoonigan 嗨,谢谢。我只是把它放在你的VB代码中吗?
    • 是的,应该可以。从您发布的代码来看,您的 messageText 似乎正在进入 Textbox1,因此您应该能够基本上复制/粘贴它,您希望在填充文本框后立即将上面的代码添加到代码隐藏中。一旦文本框被填满,上面的代码会将光标放在文本的末尾,然后将文本框滚动到它
    • @soohoonigan 再次感谢。我收到错误 BC30456:“SelectionStart”不是“System.Web.UI.WebControls.TextBox”的成员。
    • 哦,我很抱歉...我在考虑 system.windows.forms 文本框,而不是 Web 控件。试试这个answer
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 2014-12-22
    • 2014-12-20
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多