【问题标题】:Columnwise filter with dropdown in asp.net gridview using DataTable.js使用 DataTable.js 在 asp.net gridview 中使用下拉列表按列过滤
【发布时间】:2016-05-10 20:18:27
【问题描述】:

DataTable.js 提供Columnwise Search with Dropdown,如下所示。

我在这里做了精确的演示 using HTML,CSS,JS only 也可以正常工作。

现在,在我的 asp.net webforms 项目中,我已经集成了 DataTable.js,它工作得非常好。

我是怎么做到的?在这里,

gridview.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">

    <link href="Content/DataTables/css/dataTables.jqueryui.css" rel="stylesheet" />
    <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script>
</asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
   </asp:Content>


<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">

<asp:GridView ID="GridView1" runat="server" CssClass="gvdatatable" AutoGenerateColumns="true" OnPreRender="GridView1_PreRender"></asp:GridView>


<script>
         $(document).ready(function () {
             $('#<%=GridView1.ClientID%>').DataTable({
                 initComplete: function () {
                     this.api().columns().every(function () {
                         var column = this;
                         var select = $('<select><option value=""></option></select>')
                             .appendTo($(column.footer()).empty())
                             .on('change', function () {
                                 var val = $.fn.dataTable.util.escapeRegex(
                                     $(this).val()
                                 );

                                 column
                                     .search(val ? '^' + val + '$' : '', true, false)
                                     .draw();
                             });

                         column.data().unique().sort().each(function (d, j) {
                             select.append('<option value="' + d + '">' + d + '</option>')
                         });
                     });
                 }
             });
         });
        </script>
</asp:Content>

gridview.aspx.cs

protected void GridView1_PreRender(object sender, EventArgs e)
        {
            if (GridView1.Rows.Count > 0)
            {
                GridView1.UseAccessibleHeader = true;
                GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
                GridView1.FooterRow.TableSection = TableRowSection.TableFooter;
            }

        }

一切正常。只是问题是它没有在底部显示带有值的下拉列表。我有什么遗漏吗?

怎么做?

我们将不胜感激。

额外说明:

最近发现,在DataTable示例中,它有

  <tfoot>
        <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </tfoot>

当我检查控制台时,gridview 的&lt;tfoot&gt; 是空的。我认为需要一些魔法。

【问题讨论】:

    标签: c# jquery asp.net gridview datatables


    【解决方案1】:

    里面

    <asp:GridView /> 
    

    你需要

    showfooter="true"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多