автоматическая прокрутка внизу gridview asp.net - PullRequest
0 голосов
/ 07 июля 2011

У меня есть сетка.При нажатии на кнопку сетки добавится одна пустая строка.Но эта панель должна показывать мне нижнюю часть страницы, чтобы пользователь мог видеть последний элемент.похож на gTalk или окно чата в Google.Вот мой кодКак получить положение полосы прокрутки всегда внизу страницы, пожалуйста, помогите мне

  <asp:Content ID="Body" ContentPlaceHolderID="MainContent" runat="server">
<script language="javascript" type = "text/javascript" >
window.onload = function() {     var objDiv = document.getElementById("<%=pnl.ClientID%>");     objDiv.scrollTop = objDiv.scrollHeight; }


</script>
 <ajx:ToolkitScriptManager ID="CalendarAjaxEnabler" runat="server">
    </ajx:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
<uc1:StatusCodes ID="resultBanner" runat="server" />
    <div id="Div" runat="server" class="divFieldRow">           
         <div>
         <center>           
         <asp:Panel ID="pnl" runat="server"  ScrollBars="Both" style="width:auto;height:200px;">
          <asp:GridView ID="gvGrid" runat="server" AutoGenerateColumns="False" 
                        GridLines="None" AllowSorting="true"                           FooterStyle-BackColor="DimGray" EnableViewState="true" >

                <Columns>
                   <asp:TemplateField >                     
                       <HeaderTemplate>event</HeaderTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                        <ItemTemplate>
                            <asp:Label ID="lblDesc" Visible='<%# ! IsInEditMode %>' runat="server" Text='<%# Eval("Desc") %>' />
                            <asp:TextBox ID="txtDesc" Visible='<%# IsInEditMode %>' runat="server" Text='<%#Eval("Desc")%>' MaxLength="255">
                            </asp:TextBox>                                                        
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField Visible = "false">
                        <HeaderTemplate>
                            Id</HeaderTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                        <ItemTemplate>
                            <asp:TextBox ID="txtId" runat="server" Text='<%#Eval("Id")%>' ReadOnly="true"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>                   
                </Columns>                
            </asp:GridView>   
            </asp:Panel>              
            </center>
            </div>    

        <br />
        <br />              
        <asp:Button runat="server" Text="Edit" Style="margin-left: 50px" ID="btnEditevent" OnClick="btnEditEvent_Click" />        
        <asp:Button runat="server" Text="Add" Style="margin-left: 50px" ID="btnAddevent" OnClick="btnAddRowEvent_Click" />       
    </div>
    </ContentTemplate> 
     </asp:UpdatePanel>      
</asp:Content>

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Вы должны установить MaintainScrollPositionOnPostback="true" в директиве страницы

<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" %>
0 голосов
/ 07 июля 2011

Вы должны использовать javascript для этого ..

window.onload = function() {
    var objDiv = document.getElementById("<%=pnl.ClientID%>");
    objDiv.scrollTop = objDiv.scrollHeight;
}

вот пример файла aspx с вашим требованием .. и он отлично работает

 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml" >
 <head runat="server">
     <title>Untitled Page</title>
      <script type="text/javascript">
            window.onload = function() {
            var objDiv = document.getElementById("<%=pnl.ClientID %>");
            objDiv.scrollTop = objDiv.scrollHeight;
    }
</script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:Panel ID="pnl" runat ="server" Height="200" Width="100%" ScrollBars ="vertical">
        <table border="1" >
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
            <tr><td>this is testing</td></tr>
        </table>
    </asp:Panel>
    </form>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...