jQuery.fn.dataTable未定义

usr*_*ΛΩΝ 3 asp.net jquery

我的项目包含来自NuGet的JQuery.DataTable插件的JS文件.我的项目中也引用了jQuery 2.1.3.

虽然我使用<%:Scripts.Render("~/bundles/jquery") %>jQuery UI 加载jQuery UI + DataTables(它在一个成功的<script>标签中被翻译,但我的Firebug控制台中出现了大量错误)

TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.AutoFill ) {


dataTab...Fill.js (linea 848, col 20)
TypeError: $.fn.dataTable is undefined


$.extend( true, $.fn.dataTable.defaults, {

dataTab...trap.js (riga 2)
TypeError: $.fn.dataTableExt is undefined


$.fn.dataTableExt.oApi.fnColReorder = function ( oSettings, iFrom, iTo )

dataTab...rder.js (riga 110)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.ColVis ) {


dataTab...lVis.js (linea 1100, col 20)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.FixedColumns ) {


dataTab...umns.js (linea 1392, col 20)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.FixedHeader ) {


dataTab...ader.js (linea 1021, col 20)
TypeError: $.fn.dataTable is undefined


$.extend( true, $.fn.dataTable.defaults, {

dataTab...tion.js (riga 2)
TypeError: DataTable is undefined


$.extend( true, DataTable.defaults, {

dataTab...ryui.js (riga 9)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.KeyTable ) {


dataTab...able.js (linea 1169, col 20)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.Responsive ) {


dataTab...sive.js (linea 794, col 20)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.Scroller ) {


dataTab...ller.js (linea 1255, col 20)
TypeError: jQuery.fn.dataTable is undefined


else if ( jQuery && !jQuery.fn.dataTable.TableTools ) {


dataTab...ools.js (linea 3208, col 20)
Run Code Online (Sandbox Code Playgroud)

我已经定义了DataTables包

bundles.Add(new ScriptBundle("~/bundles/jquery-ui").Include("~/Scripts/jquery-ui-{version}.js").Include("~/Scripts/jquery.ui.datepicker.js")
.IncludeDirectory("~/Scripts/DataTables-1.10.4", "*.js", false));
Run Code Online (Sandbox Code Playgroud)

这至少被翻译成了

<script src="/Scripts/DataTables-1.10.4/dataTables.autoFill.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.bootstrap.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.colReorder.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.colVis.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.fixedColumns.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.fixedHeader.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.foundation.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.jqueryui.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.keyTable.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.responsive.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.scroller.js">
<script src="/Scripts/DataTables-1.10.4/dataTables.tableTools.js">
<script src="/Scripts/DataTables-1.10.4/jquery.dataTables.js">
Run Code Online (Sandbox Code Playgroud)

同样的情况与快鱼但我们解决了一两件事的时间.我怎么解决这个问题?

Cav*_*len 6

Rory上面的评论回答了这个问题.

需要先在自动填充,引导程序等文件之前加载jquery.dataTables.js.您需要实现IBundleOrderer,或手动包含该顺序的文件.更多信息:如何指定明确的ScriptBundle包含订单?

我发现只需编写我的DataTable包就可以解决我的问题:

bundles.Add(new ScriptBundle("~/bundles/datatable").Include(
            "~/Scripts/dataTables/jquery.dataTables.js",
            "~/Scripts/dataTables/dataTables*"));
Run Code Online (Sandbox Code Playgroud)