Css 引导和数据表-Jquery错误

Css 引导和数据表-Jquery错误,css,twitter-bootstrap,datatables,Css,Twitter Bootstrap,Datatables,我不太懂前端编码,所以请耐心听我说 最初,我的网站使用MVCContrib网格,并使用自己的css样式。直到最近,我才将我的站点转换为使用Bootstrap。现在,由于这个原因,MVCContrib不起作用——好吧,我不知道如何将它(MVCContrib)合并到我已经尝试过的引导中 尽管如此,我现在使用直接HTML和razor来输出我的表格网格。我正在尝试使用现有的dataTable js文件进行分页、排序等。。但是,我经常会遇到一个错误: “无法获取未定义或空引用的属性'pageButton'

我不太懂前端编码,所以请耐心听我说

最初,我的网站使用MVCContrib网格,并使用自己的css样式。直到最近,我才将我的站点转换为使用Bootstrap。现在,由于这个原因,MVCContrib不起作用——好吧,我不知道如何将它(MVCContrib)合并到我已经尝试过的引导中

尽管如此,我现在使用直接HTML和razor来输出我的表格网格。我正在尝试使用现有的dataTable js文件进行分页、排序等。。但是,我经常会遇到一个错误:

“无法获取未定义或空引用的属性'pageButton'”

我不知道我做错了什么。这就是我的页面的外观。。修剪过的版本。。我只是换了名字,其他的都一样

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

@model grepTMVC.Models.THeaderModelList

@{
    ViewBag.Title = "T Requirer";
}

@{
    ViewBag.Title = "T Requirer";
}


<head>
<meta content="IE=11.0000" http-equiv="X-UA-Compatible" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Bid Or Travel</title>
<link href="@Url.Content("~/Content/style.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/dataTables.bootstrap.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/dataTables.bootstrap.min.css")" rel="stylesheet" type="text/css" />

<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/bootstrap.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/bootstrap.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/media/js/jquery.dataTables.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/dataTables.bootstrap.js")" type="text/javascript"></script>

<meta name="GENERATOR" content="MSHTML 11.00.9600.17037" />

<script type="text/javascript">
$(document).ready(function () {

    $('#example').DataTable();

});
</script>

</head>

@using (Html.BeginForm())
{
    <body>
        <div class="container">
                        <table id="example" class="table table-responsive" >
                        <thead>
                            <tr>
                                <th>T ID</th>
                                <th>D/s</th>
                                <th>created date</th>
                                <th>Close</th>
                                <th>Status</th>
                            </tr>
                            </thead>
                        <tbody>
                            @foreach (var item in Model)
                            {
                                <tr>
                                    <td>
                                        @Html.DisplayFor(modelItem => item.tID)
                                    </td>
                                    <td>
                                        @Html.DisplayFor(modelItem => item.Dde)
                                    </td>
                                    <td>
                                        @Html.DisplayFor(modelItem => item.creationDate)
                                    </td>
                                    <td>
                                        @Html.DisplayFor(modelItem => item.close)
                                    </td
                                    <td>
                                        @Html.DisplayFor(modelItem => item.status)
                                    </td>
                                </tr>
                            }
                        </tbody>
                    </table>
    </div>
    </body>
}

</html>

@model grepTMVC.Models.THeaderModelList
@{
ViewBag.Title=“T需求者”;
}
@{
ViewBag.Title=“T需求者”;
}
投标或旅行
$(文档).ready(函数(){
$(“#示例”).DataTable();
});
@使用(Html.BeginForm())
{
T ID
承兑交单
创建日期
接近
地位
@foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.tID)
@DisplayFor(modelItem=>item.Dde)
@DisplayFor(modelItem=>item.creationDate)
@DisplayFor(modelItem=>item.close)
项目1(现状)
}
}
请找个人帮忙

上述错误针对dataTables.bootstrap.js

下面是js文件中错误指向的函数:

/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
  var api     = new DataTable.Api( settings );
  var classes = settings.oClasses;
  var lang    = settings.oLanguage.oPaginate;
  var aria = settings.oLanguage.oAria.paginate || {};
  var btnDisplay, btnClass, counter=0;

  var attach = function( container, buttons ) {
    var i, ien, node, button;
    var clickHandler = function ( e ) {
      e.preventDefault();
      if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
        api.page( e.data.action ).draw( 'page' );
      }
    };

    for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
      button = buttons[i];

      if ( $.isArray( button ) ) {
        attach( container, button );
      }
      else {
        btnDisplay = '';
        btnClass = '';

        switch ( button ) {
          case 'ellipsis':
            btnDisplay = '&#x2026;';
            btnClass = 'disabled';
            break;

          case 'first':
            btnDisplay = lang.sFirst;
            btnClass = button + (page > 0 ?
              '' : ' disabled');
            break;

          case 'previous':
            btnDisplay = lang.sPrevious;
            btnClass = button + (page > 0 ?
              '' : ' disabled');
            break;

          case 'next':
            btnDisplay = lang.sNext;
            btnClass = button + (page < pages-1 ?
              '' : ' disabled');
            break;

          case 'last':
            btnDisplay = lang.sLast;
            btnClass = button + (page < pages-1 ?
              '' : ' disabled');
            break;

          default:
            btnDisplay = button + 1;
            btnClass = page === button ?
              'active' : '';
            break;
        }

        if ( btnDisplay ) {
          node = $('<li>', {
              'class': classes.sPageButton+' '+btnClass,
              'id': idx === 0 && typeof button === 'string' ?
                settings.sTableId +'_'+ button :
                null
            } )
            .append( $('<a>', {
                'href': '#',
                'aria-controls': settings.sTableId,
                'aria-label': aria[ button ],
                'data-dt-idx': counter,
                'tabindex': settings.iTabIndex
              } )
              .html( btnDisplay )
            )
            .appendTo( container );

          settings.oApi._fnBindAction(
            node, {action: button}, clickHandler
          );

          counter++;
        }
      }
    }
  };
/*引导分页按钮渲染器*/
DataTable.ext.renderer.pageButton.bootstrap=函数(设置、主机、idx、按钮、页面、页面){
var api=新的DataTable.api(设置);
变量类=settings.oClasses;
var lang=settings.oLanguage.oPaginate;
var aria=settings.olalanguage.oAria.paginate | |{};
变量btnDisplay,btnClass,计数器=0;
var attach=功能(容器、按钮){
变量i、ien、节点、按钮;
var clickHandler=函数(e){
e、 预防默认值();
if(!$(e.currentTarget).hasClass('disabled')&&api.page()!=e.data.action){
api.page(e.data.action).draw('page');
}
};
对于(i=0,ien=buttons.length;i 0?
“‘残疾’”;
打破
“先前”案例:
btnDisplay=lang.splevious;
btnClass=按钮+(页面>0?
“‘残疾’”;
打破
“下一个”案例:
btnDisplay=lang.sNext;
btnClass=按钮+(第页<第1页?
“‘残疾’”;
打破
“最后”一案:
btnDisplay=lang.sLast;
btnClass=按钮+(第页<第1页?
“‘残疾’”;
打破
违约:
btnDisplay=按钮+1;
btnClass=页面===按钮?
'主动':'';
打破
}
如果(btnDisplay){
节点=$(“
  • ”{ “类”:类。sPageButton+“”+btnClass, “id”:idx==0&&typeof按钮===string”? settings.sTableId+''按钮: 无效的 } ) .附加($(''){ “href”:“#”, “aria控件”:settings.sTableId, “aria标签”:aria[按钮], “数据dt idx”:计数器, “tabindex”:settings.iTabIndex } ) .html(btnDisplay) ) .附在(容器)上; settings.oApi.\u fnBindAction( 节点,{action:button},clickHandler ); 计数器++; } } } };
  • 如果它说

    无法获取未定义或空引用的属性“pageButton”

    这显然意味着它无法找到HTML中定义的表。在您的
    中。我可以看到第四个
    标签未正确关闭。它是
    )。也许这就是原因

    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.tID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Dde)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.creationDate)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.close)
                </td
                <td>
                    @Html.DisplayFor(modelItem => item.status)
                </td>
            </tr>
        }
    </tbody>
    
    
    @foreach(模型中的var项目)
    {
    @DisplayFor(modeleItem=>item.tID)
    @DisplayFor(modelItem=>item.Dde)
    @DisplayFor(modelItem=>item.creationDate)
    @DisplayFor(modelItem=>item.close)
    项目1(现状)
    }
    
    好的,我终于找到了问题所在。我使用的是jquery.dataTables.js版本1.9.4,而我应该使用版本1.10.11,我遇到了同样的错误,并更新了所有相关的js文件。我发现问题在于IE缓存了jquery.dataTables.js的旧版本。清除缓存修复了此问题。

    首先,您不应该同时包含
    ~/Scripts/bootstrap.js
    ~/Scripts/bootstrap.min.js
    。他们中的任何一个都可以。其次,您能否显示使用
    pageButton
    识别错误的代码