在带有 jQuery 数据表的 Gridview 中使用 TemplateField

Using TemplateField in Gridview with jQuery Datatable

我正在使用 Gridview 在 ASP.NET(网络表单)的 TemplateField 中显示下载 link LinkBut​​ton。第一列的 header 显示在第二列所有行的 body 中,我得到一个 Non-table 节点初始化错误。 当 jQuery 被删除时 table 正确显示(没有 jQuery Datatables 样式)所以我认为问题出在用于前置的 jQuery headers。但是,如果我删除 TemplateField,table 会正确显示,这让我认为它与 TemplateField 有关。这是 aspx 页面:

    <asp:GridView ID="tblDownload" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered table-striped dataTables_scrollHead" Visible="true">
        <Columns>
            <asp:BoundField DataField="FILE_NAME" HeaderText="File Name" />
            <asp:TemplateField HeaderText="Download" SortExpression="Download">
                <ItemTemplate>
                    <asp:LinkButton ID="ID" runat="server" Text="Download" OnClick="DownloadFile" CommandArgument='<%# Eval("ID") %>'></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

这里是 jQuery:

var Table1 = $("[id*=tblDownload]").prepend($("<thead></thead>").append($("[id*=tblDownload] tr:first"))).DataTable({

});

解决方法是在GridViewtable中使用ClientIDMode="Static"