在带有 jQuery 数据表的 Gridview 中使用 TemplateField
Using TemplateField in Gridview with jQuery Datatable
我正在使用 Gridview 在 ASP.NET(网络表单)的 TemplateField 中显示下载 link LinkButton。第一列的 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"
。
我正在使用 Gridview 在 ASP.NET(网络表单)的 TemplateField 中显示下载 link LinkButton。第一列的 header 显示在第二列所有行的 body 中,我得到一个 Non-table 节点初始化错误。
<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"
。