2014-03-26 204 views
1

我需要保留列標題,當我向下滾動時,滾動位置,當我例如做一個編輯和頁面做回發。在gridview中維護GridView的滾動位置和固定的頭部asp

我不知道如何在同一時間做兩件事,但我可以分開做。我不知道如何用JavaScript做到這一點。這是兩種功能的外觀。

我用這個link來保存滾動位置和這個link來保持列標題固定。

正如我所說,他們各自單獨工作,但我如何將他們結合?

<head id="Head1" runat="server"> 
    <title>Fixed Header GridView</title> 
    <link href="Styles/GridviewScroll.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
    <script src="Scripts/gridviewScroll.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $(document).ready(function() { 
      gridviewScroll(); 
     }); 

     function gridviewScroll() { 
      $('#<%=GridView1.ClientID%>').gridviewScroll({ 
       width: 5300, 
       height: 950, 
       startHorizontal: 0, 
       wheelstep: 10, 
       barhovercolor: "#3399FF", 
       barcolor: "#3399FF" 
      }); 
     } 

     function scrollPosition() { 
      var scroll = { 
       Y: '#<%= hfScrollPosition.ClientID %>' 
      }; 

      $(document).ready(function() { 
       $("#scrollable-container").scrollTop($(scroll.Y).val()); 
      }); 
     } 



     </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
      <asp:GridView ID="GridView1" runat="server" Width="660px" 
       AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EnableModelValidation="True" ShowFooter="True" HorizontalAlign="Left"> 
       <Columns> 
+0

hi @sam我也使用相同的代碼來修復我的gridview頭,並且在對齊gridview時遇到了麻煩,當我將自動搜索或使用按鍵對文本框進行過濾時..請幫助 – rickyProgrammer

回答

1
<script type="text/javascript" src="../Scripts/gridviewScroll.min.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     gridviewScroll(); 
    }); 

    function gridviewScroll() { 
     $('#<%=GridView1.ClientID%>').gridviewScroll({ 
      width: 1175, 
      height: 500, 
      freezesize: 3, 
      startVertical: $("#<%=hfGridView1SV.ClientID%>").val(), 
      startHorizontal: $("#<%=hfGridView1SH.ClientID%>").val(), 
      onScrollVertical: function (delta) { 
       $("#<%=hfGridView1SV.ClientID%>").val(delta); 
      }, 
      onScrollHorizontal: function (delta) { 
       $("#<%=hfGridView1SH.ClientID%>").val(delta); 
      } 
     }); 
    } 

<asp:HiddenField ID="hfGridView1SV" runat="server" /> 
<asp:HiddenField ID="hfGridView1SH" runat="server" /> 

<asp:GridView ID="GridView1" runat="server" Width="660px" 
       AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EnableModelValidation="True" ShowFooter="True" HorizontalAlign="Left"> 

你缺少你的代碼中隱藏的字段。查看演示here.

+0

謝謝,startVertical:$(「#<%= hfGridView1SV.ClientID%>」)。 val(), startHorizo​​ntal:$(「#<%= hfGridView1SH.ClientID%>」),val(), onScrollVertical:function(delta){(「#<%= hfGridView1SV.ClientID%>」 ; onScrollHorizo​​ntal:function(delta){(「#<%= hfGridView1SH.ClientID%>」)。val(delta); }爲我工作 –

+0

hi @sam我也使用相同的代碼來固定我的GridView標題,並且當我在文本框中使用按鍵合併自動搜索或過濾時,在gridview對齊時遇到了問題..請幫助這裏是鏈接問題:http://stackoverflow.com/questions/37740454/gridview-rows-items-misalignment-to-header – rickyProgrammer

0

爲了保持滾動位置回傳後,我用了優秀的解決方案爲:http://www.codeproject.com/Articles/30235/Maintain-GridView-Scroll-Position-and-Header-Insid

然而HeaderFreez描述有沒有爲我工作,我嘗試了幾十解決方案,直到我得到的結論那可以簡單地複製gridview。第一個只有標題,第二個只包含數據。

爲了顯示頭和沒有行,只需使用GridView的ShowHeaderWhenEmpty =「True」屬性。你仍然必須綁定這個網格(限於一個頭部)並且寫一些不會返回任何數據的查詢(比如select * from age = -100)