Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1998
  • Last Modified:

GridView - Remember position of horizontal scrollbar on postback

Hi
I have a gridview that is dynamically filled in - so don't know how many columns in design view.  
The columns need to be variable width - this is done in the Row_Created

   Dim td As TableCell
   For x = 1 To e.Row.Cells.Count - 1
     td = e.Row.Cells(x)
     td.Width = 70
   Next


I came to this after help on EE.


The horizontal scroll is displayed and user can navigate to right on gridview - gridview can't all be fitted on screen, maybe up to XXX columns.
The gridview column titles have link.  On clicking the link, there is a postback and values at top of screen are updated according to the column selected detailing all outputs in more user friendly way than a table.

The problem...
On postback, the horizontal position of scrollbar is forgotten. So the user could have scrolled well to the right off gridview to column 50 say, then on postback the horizontal scrollbar returns to left (column 1), and if the wanted detailed on column 51 they have to scroll all the way to right again.

So I want to maintain horizontal position of scrollbar if possible so user doesn't have to scroll all way to right again.
Had problems with AJAX on this page so don't want that route.

Thanks in advance
<asp:Panel ID="TablePanel" runat="server" Width="800px" Style="overflow: scroll;
     border: gray thin solid; border-width: 1px;" BorderColor="#FF6600">
     <div id="gridViewDiv" style="width: 5000px; background-color: Silver;">
         <asp:GridView ID="GridView1" runat="server" BackColor="white" GridLines="both" BorderStyle="Solid">
         </asp:GridView>
     </div>
</asp:Panel>

Open in new window

0
rwallacej
Asked:
rwallacej
  • 3
  • 2
1 Solution
 
Gyanendra SinghArchitectCommented:
refer this link .. it will resolve your problem
http://forums.devx.com/showthread.php?t=154117
0
 
rwallacejAuthor Commented:
hi,
thanks for feedback.

I've taken the markup as Javascript from bottom of article (which seemed to be the solution), see below, but still don't retain positon.
I have put alert in the javascript to check it is called and it is.

can you advise further, please?
                <blockquote>
                    <div id="grdWithScroll" style="overflow:auto; width: 400px; background-color: Silver;" onscroll="SetDivPosition()">
                        <asp:GridView ID="GridView1" runat="server" BackColor="white" GridLines="both" BorderStyle="Solid">
                        </asp:GridView>
                    </div>
                </blockquote>
 
 
 
   <script type="text/javascript">
      window.onload = function(){
        var strCook = document.cookie;
        if(strCook.indexOf("!~")!=0){
          var intS = strCook.indexOf("!~");
          var intE = strCook.indexOf("~!");
          var strPos = strCook.substring(intS+2,intE);
          document.getElementById("grdWithScroll").scrollTop = strPos;
        }
      }
      
      function SetDivPosition(){
        var intY = document.getElementById("grdWithScroll").scrollTop;
        document.title = intY;
        document.cookie = "yPos=!~" + intY + "~!";
      }
    </script>

Open in new window

0
 
rwallacejAuthor Commented:
I should have put the code when it was changed to the position LEFT (I'm not bothered about vertical position). Here it is, but doesn't work
       window.onload = function(){
        var strCook = document.cookie;
        if(strCook.indexOf("!~")!=0){
            var intS = strCook.indexOf("!~");
            var intE = strCook.indexOf("~!");
            var strPos = strCook.substring(intS+2,intE);
            document.getElementById("grdWithScroll").scrollLeft = strPos;
        }
      }
      
      function SetDivPosition(){
        var intX = document.getElementById("grdWithScroll").scrollLeft;
        document.title = intX;
        document.cookie = "xPos=!~" + intX + "~!";
      }

Open in new window

0
 
rwallacejAuthor Commented:
go it thanks.....needed to be the reference on my TablePanel not the DIV contained therein.
thank-you very much,
rwallacej
0
 
Gyanendra SinghArchitectCommented:
your welcome
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now