Maintain page in Gridview on postback inside an Update Panel.

I have a gridview that has several pages in it.  The problem is that if I am on page 4 and then do an edit and cancel, it goes back to page 1.  I have tried doing some javascript to maintain the position and the maintainscrollpositiononPostback, but nothing seems to work.

I used the following javascript
<script type="text/javascript">
        $(document).ready(function () {
            var xPos, yPos;
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);

            function BeginRequestHandler(sender, args) {
               
                //Get X and Y positions of scrollbar before the partical postback
                xPos = $get('scrollWork').scrollLeft;
                yPos = $get('scrollWork').scrollTop;

            }


            function EndRequestHandler(sender, args) {
               
                //Set X and Y positions back to the scrollbar after the partial postack
                $get('scrollWork').scrollLeft = xPos;
                $get('scrollWork').scrollTop = yPos;
            }
        });
       

    </script>

My page looks like this:

<asp:UpdatePanel runat="server" ID="UpdatePanel2"
    >
    <ContentTemplate>      
    <div id="scrollWork" > 
<asp:GridView ID="WorkOrderGrid" runat="server" AutoGenerateColumns="False"
        AllowPaging="True" AllowSorting="True" DataKeyNames="Task_id"
         
        OnSorting="WorkOrderGrid_Sorting"
        OnSelectedIndexChanged="WorkOrderGrid_SelectedIndexChanged" Width="1042px"
            ondatabound="WorkOrderGrid_DataBound"
            onpageindexchanging="WorkOrderGrid_PageIndexChanging"
            onrowdatabound="WorkOrderGrid_RowDataBound" >
 <Columns>
 <asp:BoundField DataField="Task_id" HeaderText = "No." SortExpression="Task_id" />
 <asp:BoundField DataField="CatName" HeaderText="Problem Area" SortExpression="CatName" />
     <asp:TemplateField HeaderText="Problem">
         <EditItemTemplate>
             <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("TaskDescription") %>'></asp:TextBox>
         </EditItemTemplate>
         <ItemTemplate>
             <asp:Label ID="lblDescription" runat="server" Text='<%# Bind("TaskDescription") %>'></asp:Label>
         </ItemTemplate>
     </asp:TemplateField>
 <asp:BoundField DataField= "TaskRequestDate" HeaderText = "Request Date" SortExpression="TaskRequestDate" />
 <asp:BoundField DataField = "TaskRequestedBy" HeaderText = "Requestor" SortExpression="TaskRequestedBy" />
 <asp:BoundField DataField="RoomNo" HeaderText="Room" SortExpression="RoomNo" />
 <asp:BoundField DataField="Phone" HeaderText="Phone"/>
 <asp:BoundField DataField = "TaskAssignedTo" HeaderText = "Assigned To" SortExpression="TaskAssignedTo" />
 <asp:BoundField DataField = "Status_Description" HeaderText = "Status" SortExpression="Status_Description" />
     <asp:ButtonField CommandName="Select" Text="Select" />
 
 </Columns>
    <FooterStyle CssClass="GridFooter" />
 </asp:GridView>
 </div>
 </ContentTemplate>
            </asp:UpdatePanel>
LVL 1
Dukster131Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Aaron JabamaniTechnical ArchitectCommented:
Don't you have to store the position while leaving the page and restore them when you come back from page 4 ?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Dukster131Author Commented:
I am never leaving the page - just making gridview visible and invisible and Panels visible and invisible.
0
Dukster131Author Commented:
I tried saving the newPageIndex in a session variable and using that when I cancelled the details view.  Then when I got the data I used

if (Session["Page"] != null)
                    {
                        WorkOrderGrid.PageIndex = Convert.ToInt32(Session["Page"]);
                    }
                    else
                    {
                        WorkOrderGrid.PageIndex = newPageIndex;
                    }

That worked.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.