gridview - 如何卡住gridview的header【gridview和列宽不固定】

标签 gridview webforms vertical-scrolling fixed-header-tables

我正在使用垂直滚动条实现 Gridview 卡住标题。我尝试了很多这里建议的解决方案。但问题是,

  • Gridview 位于面板内,其宽度不固定。它的 97%。

  • 2.列没有固定的宽度。

    我尝试了 GridviewScroll.js 中建议的解决方案,但问题在于固定宽度,并且 Gridview 没有根据窗口大小调整大小。

    我尝试了太多解决方案,但没有固定宽度就没有任何效果,所以我不能在这里展示..

    下面是我现有的代码
             <asp:Panel ID="panel_gridholder" runat="server"  style="position:absolute;left:10px;width:97%; min-width:1020px;margin-top:3px;margin-bottom:20px;overflow:auto;" >
    
    
                <asp:GridView ID="GridView_Vehicle" runat="server" AutoGenerateColumns="False" AllowSorting="true" PagerSettings-Position="TopAndBottom"
                    OnPageIndexChanging="GridView_Vehicle_PageIndexChanging" OnSorting="GridView_Vehicle_Sorting" PageSize="100"
                    GridLines="None" AllowPaging="true" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt">
                    <Columns> </Columns>
               </asp:GridView>
    
                <div style="height: 400px"></div>
            </asp:Panel>
    

    有什么建议 ?

    最佳答案

    我会使用 DataTables 。除了做你想做的事(据我了解你的要求),它是成熟的、稳定的,并且能够做更多的事情。

    我创建了一个 JsFiddle 来演示:https://jsfiddle.net/objo18f9/3/

    在 fiddle 中:标题固定,内容垂直滚动;没有指定的列大小(当您向左或向右拖动( fiddle 的)中间分隔符时,它们将调整大小;并且表格被设置为页面宽度的 97% 的 div 包围(从内存中可以看出面板在 ASP.Net 中呈现);并打开分页。

    这是与代码片段相同的示例:

    $(document).ready(function() {
      $('#example').DataTable({
        "scrollY": "200px",
        "scrollCollapse": true,
        "paging": true
      });
    });
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
    
    <div width="97%">
      <table id="example" class="display" width="100%" cellspacing="0">
        <thead>
          <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th>Salary</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Tiger Nixon</td>
            <td>System Architect</td>
            <td>Edinburgh</td>
            <td>61</td>
            <td>2011/04/25</td>
            <td>$320,800</td>
          </tr>
          <tr>
            <td>Garrett Winters</td>
            <td>Accountant</td>
            <td>Tokyo</td>
            <td>63</td>
            <td>2011/07/25</td>
            <td>$170,750</td>
          </tr>
          <tr>
            <td>Ashton Cox</td>
            <td>Junior Technical Author</td>
            <td>San Francisco</td>
            <td>66</td>
            <td>2009/01/12</td>
            <td>$86,000</td>
          </tr>
          <tr>
            <td>Cedric Kelly</td>
            <td>Senior Javascript Developer</td>
            <td>Edinburgh</td>
            <td>22</td>
            <td>2012/03/29</td>
            <td>$433,060</td>
          </tr>
          <tr>
            <td>Airi Satou</td>
            <td>Accountant</td>
            <td>Tokyo</td>
            <td>33</td>
            <td>2008/11/28</td>
            <td>$162,700</td>
          </tr>
          <tr>
            <td>Brielle Williamson</td>
            <td>Integration Specialist</td>
            <td>New York</td>
            <td>61</td>
            <td>2012/12/02</td>
            <td>$372,000</td>
          </tr>
          <tr>
            <td>Herrod Chandler</td>
            <td>Sales Assistant</td>
            <td>San Francisco</td>
            <td>59</td>
            <td>2012/08/06</td>
            <td>$137,500</td>
          </tr>
          <tr>
            <td>Rhona Davidson</td>
            <td>Integration Specialist</td>
            <td>Tokyo</td>
            <td>55</td>
            <td>2010/10/14</td>
            <td>$327,900</td>
          </tr>
          <tr>
            <td>Colleen Hurst</td>
            <td>Javascript Developer</td>
            <td>San Francisco</td>
            <td>39</td>
            <td>2009/09/15</td>
            <td>$205,500</td>
          </tr>
          <tr>
            <td>Sonya Frost</td>
            <td>Software Engineer</td>
            <td>Edinburgh</td>
            <td>23</td>
            <td>2008/12/13</td>
            <td>$103,600</td>
          </tr>
          <tr>
            <td>Jena Gaines</td>
            <td>Office Manager</td>
            <td>London</td>
            <td>30</td>
            <td>2008/12/19</td>
            <td>$90,560</td>
          </tr>
          <tr>
            <td>Quinn Flynn</td>
            <td>Support Lead</td>
            <td>Edinburgh</td>
            <td>22</td>
            <td>2013/03/03</td>
            <td>$342,000</td>
          </tr>
          <tr>
            <td>Charde Marshall</td>
            <td>Regional Director</td>
            <td>San Francisco</td>
            <td>36</td>
            <td>2008/10/16</td>
            <td>$470,600</td>
          </tr>
          <tr>
            <td>Haley Kennedy</td>
            <td>Senior Marketing Designer</td>
            <td>London</td>
            <td>43</td>
            <td>2012/12/18</td>
            <td>$313,500</td>
          </tr>
          <tr>
            <td>Tatyana Fitzpatrick</td>
            <td>Regional Director</td>
            <td>London</td>
            <td>19</td>
            <td>2010/03/17</td>
            <td>$385,750</td>
          </tr>
          <tr>
            <td>Michael Silva</td>
            <td>Marketing Designer</td>
            <td>London</td>
            <td>66</td>
            <td>2012/11/27</td>
            <td>$198,500</td>
          </tr>
          <tr>
            <td>Paul Byrd</td>
            <td>Chief Financial Officer (CFO)</td>
            <td>New York</td>
            <td>64</td>
            <td>2010/06/09</td>
            <td>$725,000</td>
          </tr>
          <tr>
            <td>Gloria Little</td>
            <td>Systems Administrator</td>
            <td>New York</td>
            <td>59</td>
            <td>2009/04/10</td>
            <td>$237,500</td>
          </tr>
          <tr>
            <td>Bradley Greer</td>
            <td>Software Engineer</td>
            <td>London</td>
            <td>41</td>
            <td>2012/10/13</td>
            <td>$132,000</td>
          </tr>
          <tr>
            <td>Dai Rios</td>
            <td>Personnel Lead</td>
            <td>Edinburgh</td>
            <td>35</td>
            <td>2012/09/26</td>
            <td>$217,500</td>
          </tr>
        </tbody>
      </table>
    </div>


    如果您告诉 ASP.Net 使用静态 ID:<asp:GridView ID="GridView_Vehicle" ClientIDMode="static" ...,那么您应该可以将您的表引用为:$('#GridView_Vehicle').DataTable({ ... });

    关于gridview - 如何卡住gridview的header【gridview和列宽不固定】,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955519/

    相关文章:

    c# - Gridview 使列不可见

    c# - linkbutton 没有在 asp.net 中回发

    身份验证后 ASP.Net 重定向到本地主机

    android - ListView 禁用标题 View 的垂直滚动

    android - 带有包含网站链接的文本的自动垂直滚动 TextView

    c# - gridview 内的 Linkbutton 未触发

    c# - 嵌套的 gridview 获取父行

    android - 创建具有可点击图像的 Gridview,Android

    asp.net - ImageUrl自定义控件设计时间

    javascript - Fullpage.js - 带键盘的垂直滚动