我是MVC, jquery和数据表的新手。我得到一个Microsoft Visual Studio警告对话框,当我按下F5构建并将网站本地开发/调试:
JavaScript运行时错误:对象不支持属性或方法'dataTable'
我使用VS 2012与MVC 4项目。我使用NuGet包管理器为我的解决方案安装更新jQuery 1.8.3和jQuery。datatable 1.9.4。这是我的索引。CSHTML视图代码:
<script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js")" type="text/javascript"></script>
<script>
$(document).ready(function () {
$('#table_id').dataTable({
});
});
</script>
<table id="table_id" class="display">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1 Data 1</td>
<td>Row 1 Data 2</td>
</tr>
<tr>
<td>Row 2 Data 1</td>
<td>Row 2 Data 2</td>
</tr>
</tbody>
</table>
这似乎是一个引用问题,但我没有尝试解决这个问题!
我已经搜索了博客,但找不到答案,或者可能理解需要改变的地方。一个直接的回答将是非常感激!
谢谢!
我想你可以试着把这些行注释掉:
@Scripts.Render(~/包/jquery)
@RenderSection("scripts", required: false)
,它们位于"_Layout"的末尾。cshtml"页面。
希望有意义
既然你提到你是MVC的新手(我不喜欢noob这个词),我假设你在多个视图中声明了jQuery(就像你上面所做的那样)。我提供了一个示例布局为您的代码,如果你想遵循它
jQuery和其他库应该只包含在你的html中一次,最好是在页面的底部,就在body结束标签 之前如果在以后的代码中,您再次包含jQuery,那么它将覆盖前一个,其中附加了dataTable插件
最好使用实际的浏览器(chrome,firefox,IE)而不是Visual Studio。在Chrome中,按F12调出开发人员工具,然后按Esc调出控制台。看到错误了吗?
您的代码布局示例如下所示。这是主视图文件(如果我没有弄错,默认情况下它在Views> Shared> _Layout.cshtml)
<!DOCTYPE html>
<html>
<head>
...
<!-- Global Styles -->
<link href="styles.css" rel="stylesheet" type="text/css" />
<!-- Page Specific Styles -->
@if (IsSectionDefined("Styles"))
{
@RenderSection("Styles")
}
...
</head>
<body>
...
<!-- Global Scripts -->
<script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"></script>
<!-- Page Specific Scripts -->
@if (IsSectionDefined("Scripts"))
{
@RenderSection("Scripts")
}
</body>
</html>
你可以给每个视图添加任何你想要的样式/脚本,像这样
...
<!-- View HTML -->
...
@section Styles {
<link href="specific.css" />
}
@section Scripts {
<script src="specific.js"></script>
}
希望有所帮助
OK,
删除数据表
的()之间的{}像这样写
$(document).ready(function () {
$('#table_id').dataTable();
});
小提琴例子
当你想向数据表添加选项时,你可以使用{}来使用这些选项
:
$(document).ready(function() {
$('#example').dataTable( {
"bPaginate": false,
"bLengthChange": false,
"bFilter": true,
"bSort": false,
"bInfo": false,
"bAutoWidth": false
} );
} );
看到示例